这是我第一次使用cmake。
所以我在开发者命令提示符中写vs 2022
C:\Users\KBSI\OpenMS\JK_contrib>cmake -DBUILD_TYPE=ALL -DNUMBER_OF_JOBS=4 -G "Visual Studio 17 2022" -A x64 "C:\Users\KBSI\OpenMS\contrib"
结果如下
CMake Error at CMakeLists.txt:323 (message):
cl.exe (32-bit) and Visual Studio Generator (64-bit) do not match. Please
fix your PATH environment to find the proper cl.exe or use an appropriate
generator by adding -A Win32/x64 to your CMake call.
-- Configuring incomplete, errors occurred!
See also "C:/Users/KBSI/OpenMS/JK_contrib/CMakeFiles/CMakeOutput.log".
因此,我也将X64/cl.exe添加到环境路径中。
但没有成功。
请帮帮我。
1条答案
按热度按时间hmae6n7t1#
您尝试构建的项目对运行cmake配置的环境有一些限制,并说明了原因:
从
OpenMS/contrib/CMakeLists.txt
开始CONTRIB_ADDRESSMODEL
的设置取决于检测到的CMake(CMAKE_SIZEOF_VOID_P
)的编译器属性。注意,这里
cl.exe
是从当前进程执行的,以检测所用程序的体系结构。该程序可能与编译器cmake选择使用的不同。这要求您确保cmake选择的编译和命令提示符中可用的
cl.exe
都以x64为目标,以设置以x64为目标的cmake项目。在进行cmake配置之前,您需要运行正确的...\vcvarsall.bat x64
(或等效程序)。或者,您需要手动编辑
PATH
环境变量,以便在列出包含面向不同体系结构得cl.exe
得任何其他目录之前列出包含面向x64得cl.exe
得目录.注意:我还没有仔细研究为什么要添加这个CMake逻辑,但听起来这是一个糟糕的选择。当然,有些情况下您希望避免使用意外的编译器进行编译,但有些CMake生成器硬编码到程序的绝对路径,如编译器,使用这些生成器会受到这样的限制的阻碍...