Visual studio CMake失败,出现“错误”;找不到文件编译器/msvc asm“;即使它存在
我正在尝试使用CMake生成Visual Studio项目文件。我正在Visual Studio 2017 Developer命令提示符中执行以下命令:Visual studio CMake失败,出现“错误”;找不到文件编译器/msvc asm“;即使它存在,visual-studio,cmake,Visual Studio,Cmake,我正在尝试使用CMake生成Visual Studio项目文件。我正在Visual Studio 2017 Developer命令提示符中执行以下命令: cmake -G "Visual Studio 15 2017 Win64" -Thost=x64 ../project 除了ASM编译器(应该是Visual Studio附带的cl.exe)之外,所有内容都可以正确找到。我发现这很奇怪,因为C++编译器是完全相同的文件,已经找到了!p> 作为参考,我在日志中看到这一行: Warning: D
cmake -G "Visual Studio 15 2017 Win64" -Thost=x64 ../project
除了ASM编译器(应该是Visual Studio附带的cl.exe
)之外,所有内容都可以正确找到。我发现这很奇怪,因为C++编译器是完全相同的文件,已经找到了!p>
作为参考,我在日志中看到这一行:
Warning: Did not find file Compiler/MSVC-ASM
有什么想法吗?我不知道为什么会发生这种情况,但看起来开发人员命令提示符弄乱了CMake用来查找ASM编译器的某些东西 这对我很有用:
cl.exe
位于您的路径中(以及项目使用的任何其他相关文件)我在VS2013上也遇到了同样的问题,并通过使用
enable_language(ASM_MASM)
而不是enable_language(ASM)
解决了这个问题,并强制将汇编代码文件包含在set_属性(SOURCE.S属性语言ASM_MASM)中
否则该文件将不会参与生成。您的CMake版本太旧。。。旧版本中缺少所需的文件…结果是MSVC-ASM
是实际CMake模块的名称。我正在使用CMake 3.8.2,在我的例子中,它确实丢失了
MSVC-ASM.cmake
用于Visual Studio汇编程序的设置的占位符。它可能只是一个空文件:我能够使用CMake的
--trace
选项追踪到它。
另一个文件cmakasmInformation.cmake
正在包含该警告,如果未找到,则会打印该警告:
# Load compiler-specific information.
set(_INCLUDED_FILE "")
if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
include(Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
endif()
if(NOT _INCLUDED_FILE)
if("ASM${ASM_DIALECT}" STREQUAL "ASM")
message(STATUS "Warning: Did not find file Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}")
endif()
include(Platform/${CMAKE_BASE_NAME} OPTIONAL)
endif()
解决方案:在c:\Program Files\cmake\share\cmake-3.8\Modules\Compiler
下创建了一个空的MSVC-ASM.cmake
,警告消失