我正在使用CMake GUI构建一个c ++项目(使用点云库(PCL))并且在配置时,我收到了上述错误.此问题之前发布在此论坛中,但安装VS2012版本后出现问题.但我的机器只有VS2010版本.
以前我使用CMake成功运行,但我猜不知道任何文件已损坏(可能是在Windows更新后?).有什么建议?
CMake 生成的 make 文件具有彩色输出,以提高可读性。
是否可以更改颜色?我有一个绿色的终端字体,所以我有点松散指示对象已构建的消息的颜色。
我正在编写一个程序来解决类似sudoko的难题Hashiwokakero。我有一些看起来像这样的代码:
if (bridgesLeft[row][col] == 1)
{
doSomething();
}
else if (bridgesLeft[row][col] == 2)
{
doSomethingElse();
}
else if (bridgesLeft[row][col] == 3)
{
doAnotherThing();
}
...
Run Code Online (Sandbox Code Playgroud)
我意识到我在doSomethingElse()函数中放了一个错误,因此我没有删除该块,而是添加else if (bridgesLeft[row][col] == 2 && false)了保证该错误功能不会运行的信息,只是要确保那是我的错误来源。Xcode给我警告,说我的doSomethingElse()代码永远不会运行。它还给了我这个选择:
fix-it: Silence by adding parentheses to mark code as explicitly dead.
Run Code Online (Sandbox Code Playgroud)
单击此按钮会更改
else if (bridgesLeft[row][col] == 2 && false)
Run Code Online (Sandbox Code Playgroud)
至
else if (bridgesLeft[row][col] == /* DISABLES CODE */ (2) && false)
Run Code Online (Sandbox Code Playgroud)
如何将括号内的“ 2”标记为明显已死?这是什么意思?如果我保留括号,但取出&& false一部分,代码块仍会执行,因此实际上并没有使代码失效。
配置 CMake 项目时,我不断遇到此问题:
example/CMakeLists.txt:74 (ADD_EXECUTABLE) 处的 CMake 警告 (dev):
未设置策略 CMP0063:尊重所有目标类型的可见性属性。运行“cmake --help-policy CMP0063”以获取策略详细信息。使用 cmake_policy 命令设置策略并抑制此警告。
“EXECUTABLE”类型的目标“Protonect”为 CXX 设置了以下可见性属性:Run Code Online (Sandbox Code Playgroud)CXX_VISIBILITY_PRESET VISIBILITY_INLINES_HIDDEN为了兼容性,CMake 不会为此目标尊重它们。此警告是针对项目开发人员的。使用 -Wno-dev 来抑制它。
我知道我想打电话cmake_policy(SET CMP0063 NEW)- 我正在这样做,但我不确定我应该如何使用add_executable(Protonect).
我安装了多个版本的OpenCV,而CMake找到了错误的版本。我已经使用brew安装了opencv和opencv3,它们存在于以下路径中:
/usr/local/opt/opencv3
/usr/local/opt/opencv
Run Code Online (Sandbox Code Playgroud)
我的CMakeLists.txt如下所示:
cmake_minimum_required(VERSION 2.8)
set(ENV{OpenCV_DIR} "/usr/local/opt/opencv3")
project(TestProject)
#OpenCV
find_package( OpenCV 3 REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
MESSAGE ( STATUS "Found OpenCV: ${OpenCV_VERSION}" )
MESSAGE ( STATUS "OpenCV_INCLUDE_DIRS= ${OpenCV_INCLUDE_DIRS}" )
MESSAGE ( STATUS "OpenCV_DIR= $ENV{OpenCV_DIR}" )
Run Code Online (Sandbox Code Playgroud)
我正在使用OpenCV_DIR指向我要使用的OpenCV的位置(在本示例中,它是在100%确定此变量指向正确位置之前立即设置的)。
我的输出是这样的:
-- Found OpenCV: 3.0.0
-- OpenCV_INCLUDE_DIRS= /usr/local/include/opencv
-- OpenCV_DIR= /usr/local/opt/opencv3
Run Code Online (Sandbox Code Playgroud)
因此,它正在查找正确版本的OpenCV(3.0.0),但是include路径设置为其他一些opencv,在这种情况下,/ usr / local / include / opencv指向/ usr / local / opt / opencv,即2.4.8版本。
结果,我的程序都找不到适合的文件!如果OpenCV_DIR环境变量似乎不起作用,是否有人知道如何告诉CMake寻找哪个版本?
我有几个版本的项目结帐和编译。如果我发现错误,我会比较版本以缩小问题范围。有时我会启用像 AddressSanitizer 这样的消毒剂。如果我重新使用一个可执行文件,我不记得它是否是用消毒剂编译的。如果可执行文件工作正常,我不确定该错误是否不存在,或者我是否没有在此版本中包含消毒剂。所以我必须重新配置和重建以确保我有消毒剂。
有没有办法检查可执行文件是否已使用消毒剂编译?
我\xe2\x80\x99一直在尝试在新PC上设置ITK,但当我在项目上运行CMake时遇到了问题。
\n\n我下载了 ITK 4.8.2,将其解压,使用 CMake 配置并一如既往地生成。然而,这次 CMake 发出以下错误:
\n\nCMake Error at CMakeLists.txt:4 (find_package):\n By not providing "FindITK.cmake" in CMAKE_MODULE_PATH this project has\n asked CMake to find a package configuration file provided by "ITK", but\n CMake did not find one.\n\n Could not find a package configuration file provided by "ITK" with any of\n the following names:\n\n ITKConfig.cmake\n itk-config.cmake\n\n Add the installation prefix of "ITK" to CMAKE_PREFIX_PATH or set "ITK_DIR"\n to a directory containing one of the above files. If …Run Code Online (Sandbox Code Playgroud) 首先,我已经从https://sourceforge.net/projects/mingw/files/和 mingw32-gcc-g++ 和 mingw32-gcc-objs安装了 MinGW 。我已将 C:\MinGW\bin 添加到我的路径中。
其次,我已经为 Windows 安装了 Git(不是很重要,cmd.exe 上的结果是一样的)。
第三,我已经用http://gnuwin32.sourceforge.net/packages/make.htm安装了完整的包“make”
之后,我用 .msi 安装了 cmake 3.5.1。
但是当我运行时cmake ../src,结果是:
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:5 (project):
No CMAKE_C_COMPILER could be found.
CMake Error at CMakeLists.txt:5 (project):
No CMAKE_CXX_COMPILER could be found.
-- Configuring incomplete, errors occurred!
See also "C:/Users/pauka/Dropbox/ETUDE/SRI/S8/STA_Stage/sources/tests/bin/CMakeFiles/CMakeOutput.log".
See also "C:/Users/pauka/Dropbox/ETUDE/SRI/S8/STA_Stage/sources/tests/bin/CMakeFiles/CMakeError.log".
Run Code Online (Sandbox Code Playgroud)
所以cmake找不到gcc或g++。但是当我运行 gcc -version 时,输出很好......我应该为 cmake 配置什么?
我的 CMakeLists.txt …
我知道要从源代码编译和安装某些东西,在 Unix 系统中,涉及的三个步骤是:
1) ./configure
2) make
3) make install
从源码查看OpenCV的安装,发现没有./configure步骤,但是有cmake步骤。这给了我cmake相当于./configure. 我还读到cmake可以生成构建系统,例如Makefiles,这就是该./configure步骤的作用。
但是,这篇文章(参见 的第一段what is the difference?)说它也cmake执行实际构建。如果是这种情况,为什么 OpenCV 安装会指示makeafter cmake?另外,我经常看到它cmake与 相比make,而不是./configure。那么,cmake实际上适合在哪里?