C++ CMake致命错误LNK1112:模块机器类型';x64和x27;与目标机器类型'冲突;x86和x27;
我正在学习如何使用CMake 我正在将一个工作项目从VisualStudio转换为Cmake,并使用NMake进行构建。当前项目为x64和x86构建 我当前的CMakeLists.txt非常简单:C++ CMake致命错误LNK1112:模块机器类型';x64和x27;与目标机器类型'冲突;x86和x27;,c++,windows,makefile,cmake,nmake,C++,Windows,Makefile,Cmake,Nmake,我正在学习如何使用CMake 我正在将一个工作项目从VisualStudio转换为Cmake,并使用NMake进行构建。当前项目为x64和x86构建 我当前的CMakeLists.txt非常简单: cmake_minimum_required(VERSION 3.13.0) project(SimManager CXX) ADD_DEFINITIONS(-DUNICODE) ADD_DEFINITIONS(-D_UNICODE) set(CMAKE_CXX_FLAGS -G"NMake M
cmake_minimum_required(VERSION 3.13.0)
project(SimManager CXX)
ADD_DEFINITIONS(-DUNICODE)
ADD_DEFINITIONS(-D_UNICODE)
set(CMAKE_CXX_FLAGS -G"NMake Makefiles")
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(SimManager
Source/main.cpp
)
set_target_properties (${PROJECT_NAME} PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED TRUE
CXX_EXTENSIONS FALSE
)
我得到的错误是
fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86'
我理解NMake选择使用哪种编译器(x86或x64)的方式是通过打开相应的控制台终端。
我正在使用VS 2017的选择x64本机工具命令提示符
执行的链接器的命令行是:
命令"C:\PROGRA~2\MIB055~1\2019\enterp1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\link.exe/nologo@cmakfiles\SimManager.dir\objects1.rsp/out:SimManager.exe/implib:SimManager.lib/pdb:E:\Projects\SimManager\Debug\SimManager.pdb/版本:0/machine:x86/Debug/INCREMENTAL/subsystem:console kernel32.lib user32.lib gdi32.lib winspool.shell32.libole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib/MANIFEST/MANIFESTFILE:CMakeFiles\SimManager.dir/intermediate.MANIFEST CMakeFiles\SimManager.dir/MANIFEST.res“失败(退出代码1112),输出如下:致命错误LNK112:模块计算机类型“x64”与目标计算机类型“x86”冲突。
我可以看到它设置了/machine:X86
。我没有在CMakeLists.txt中设置它。我如何使它使用64位链接器
我尝试在cmake调用中添加建议的参数,但没有任何区别
cmake-G“NMake Makefiles”--buildbuild64--config Release-host\u arch=amd64-arch=amd64..
谢谢