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

时间:2017-01-20 11:43:23

标签: visual-studio-2010 cmake

我有一个项目,我用cmake生成并在visual studio 2010中运行。我将配置更改为x64,在visual studio中我的活动解决方案和目标机器(Properties-> Linker-> Advanced)是设置为x64。我仍然得到链接器LNK1112错误。这是我在cmakelist.txt设置的东西,如果是这样的命令是什么? -swetha

2 个答案:

答案 0 :(得分:3)

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

cmake -G "Visual Studio 14 Win64" path/to/your/CMakeLists.txt

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

cmake --help

如果这没有解决您的问题,请在删除生成的构建文件后再次尝试。

如果仍然无法解决问题,那么您将链接到为x86构建的第三方依赖项。

答案 1 :(得分:0)

尝试删除解决方案中的所有* .obj文件,让编译器再次编译所有文件。此问题可能导致编译器尝试引用已编译为x64

的obj文件