致命错误 LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突 Visual Studio 2010 和 cmake

swe*_*tha 4 cmake visual-studio-2010

我有一个使用 cmake 生成并在 Visual Studio 2010 中运行的项目。我将配置更改为 x64,在 Visual Studio 中我的活动解决方案和目标机器(属性->链接器->高级)设置为 x64.I仍然得到链接器 LNK1112 错误。这是我在 cmakelist.txt 中设置的,如果是的话,命令是什么?-swetha

Cin*_*its 6

这不是您想要设置的内容CMakeLists.txt。基本上,CMake 为不同的编译器提供了多个生成器。(x86 和 x64 编译器是 Windows 上两个不同的编译器。)生成构建文件时,您需要传递正确的编译器供 CMake 使用,或者如果您使用 GUI,请选择 Win64。从命令行:

cmake -G "Visual Studio 14 Win64" path/to/your/CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

或任何你想要的 Visual Studio 版本。您可以通过以下方式查看可用的生成器:

cmake --help
Run Code Online (Sandbox Code Playgroud)

如果这不能解决您的问题,请在删除生成的构建文件后重试。

如果这仍然不能解决问题,则您正在链接到为 x86 构建的第三方依赖项。

  • +1 这是我的问题。我们在 CMakeLists 中有 `set(CMAKE_GENERATOR_PLATFORM x64)`。删除它,并执行`-G "Visual Studio 15 2017 Win64"` 来修复 LINK1112 错误。谢谢 :) (3认同)