Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CMake致命错误LNK1112:模块机器类型';x64和x27;与目标机器类型'冲突;x86和x27;_C++_Windows_Makefile_Cmake_Nmake - Fatal编程技术网

C++ CMake致命错误LNK1112:模块机器类型';x64和x27;与目标机器类型'冲突;x86和x27;

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

我正在将一个工作项目从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 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..

谢谢