小编usr*_*567的帖子

LINK:致命错误LNK1123:转换为COFF期间失败:文件无效或损坏

我正在使用CMake GUI构建一个c ++项目(使用点云库(PCL))并且在配置时,我收到了上述错误.此问题之前发布在此论坛中,但安装VS2012版本后出现问题.但我的机器只有VS2010版本.

以前我使用CMake成功运行,但我猜不知道任何文件已损坏(可能是在Windows更新后?).有什么建议?

cmake visual-studio-2010

5
推荐指数
1
解决办法
3万
查看次数

CMake在makefile中更改颜色

CMake 生成的 make 文件具有彩色输出,以提高可读性。

是否可以更改颜色?我有一个绿色的终端字体,所以我有点松散指示对象已构建的消息的颜色。

makefile colors cmake

5
推荐指数
1
解决办法
1814
查看次数

Xcode为c ++中的显式死代码提供了奇怪的解决方案?

我正在编写一个程序来解决类似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一部分,代码块仍会执行,因此实际上并没有使代码失效。

c++ xcode dead-code compiler-warnings

5
推荐指数
1
解决办法
1529
查看次数

摆脱 CMake CMP0063 警告

配置 CMake 项目时,我不断遇到此问题:

example/CMakeLists.txt:74 (ADD_EXECUTABLE) 处的 CMake 警告 (dev):
未设置策略 CMP0063:尊重所有目标类型的可见性属性。运行“cmake --help-policy CMP0063”以获取策略详细信息。使用 cmake_policy 命令设置策略并抑制此警告。


“EXECUTABLE”类型的目标“Protonect”为 CXX 设置了以下可见性属性:

CXX_VISIBILITY_PRESET
VISIBILITY_INLINES_HIDDEN
Run Code Online (Sandbox Code Playgroud)

为了兼容性,CMake 不会为此目标尊重它们。此警告是针对项目开发人员的。使用 -Wno-dev 来抑制它。

我知道我想打电话cmake_policy(SET CMP0063 NEW)- 我正在这样做,但我不确定我应该如何使用add_executable(Protonect).

visibility cmake deprecation-warning

5
推荐指数
1
解决办法
3600
查看次数

CMake找到不正确的OpenCV版本

我安装了多个版本的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寻找哪个版本?

macos cmake opencv3.0

5
推荐指数
1
解决办法
784
查看次数

检查像 AddressSanitizer 这样的消毒剂是否处于活动状态

我有几个版本的项目结帐和编译。如果我发现错误,我会比较版本以缩小问题范围。有时我会启用像 AddressSanitizer 这样的消毒剂。如果我重新使用一个可执行文件,我不记得它是否是用消毒剂编译的。如果可执行文件工作正常,我不确定该错误是否不存在,或者我是否没有在此版本中包含消毒剂。所以我必须重新配置和重建以确保我有消毒剂。

有没有办法检查可执行文件是否已使用消毒剂编译?

sanitizer

5
推荐指数
1
解决办法
3833
查看次数

ITK:找不到ITKConfig.cmake

我\xe2\x80\x99一直在尝试在新PC上设置ITK,但当我在项目上运行CMake时遇到了问题。

\n\n

我下载了 ITK 4.8.2,将其解压,使用 CMake 配置并一如既往地生成。然而,这次 CMake 发出以下错误:

\n\n
CMake 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)

cmake itk

5
推荐指数
1
解决办法
8202
查看次数

cmake 与 git for windows、MinGW 和 make

首先,我已经从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 …

mingw cmake

5
推荐指数
1
解决办法
1万
查看次数

CMake 找不到包含/库

我想在使用 CMake 的项目中使用一些第三方标头(或库)。但它找不到标头(库)。为什么CMake找不到它?

cmake

5
推荐指数
1
解决办法
8600
查看次数

调用 CMake 是否等同于 ./configure 步骤?

我知道要从源代码编译和安装某些东西,在 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实际上适合在哪里?

configuration cmake

5
推荐指数
1
解决办法
1209
查看次数