Cmake:如何仅在编译器存在时强制编译器? 我希望Cmake只使用英特尔C++编译器,如果它存在的话。我在这里找到了这个片段,但顾名思义,它迫使Cmake使用英特尔编译器。如果不在场,他会抱怨的。句号 include(CMakeForceCompiler) CMAKE_FORCE_C_COMPILER(icc "Intel C Compiler") CMAKE_FORCE_CXX_COMPILER(icpc "Intel C++ Compiler")
是否有任何方法可以实现这种行为(理想情况下,如果不存在,则仅向用户显示警告)?这在CMake内部是不可能的 CMake希望用户设置并选择正确的工具链。然后,在第一次配置运行时,CMake执行两个测试,以验证所选编译器是否存在并按预期工作。每次配置只能执行一次此检查,因此CMake中的编译器干净切换始终需要擦除CMakeCache.txt并重新启动新的配置运行 您需要一个外部脚本来选择正确的编译器,然后使用正确的参数调用CMake。以下是我的操作方法:Cmake:如何仅在编译器存在时强制编译器? 我希望Cmake只使用英特尔C++编译器,如果它存在的话。我在这里找到了这个片段,但顾名思义,它迫使Cmake使用英特尔编译器。如果不在场,他会抱怨的。句号 include(CMakeForceCompiler) CMAKE_FORCE_C_COMPILER(icc "Intel C Compiler") CMAKE_FORCE_CXX_COMPILER(icpc "Intel C++ Compiler"),cmake,Cmake,是否有任何方法可以实现这种行为(理想情况下,如果不存在,则仅向用户显示警告)?这在CMake内部是不可能的 CMake希望用户设置并选择正确的工具链。然后,在第一次配置运行时,CMake执行两个测试,以验证所选编译器是否存在并按预期工作。每次配置只能执行一次此检查,因此CMake中的编译器干净切换始终需要擦除CMakeCache.txt并重新启动新的配置运行 您需要一个外部脚本来选择正确的编译器,然后使用正确的参数调用CMake。以下是我的操作方法: find_program (INTEL_CO
find_program (INTEL_COMPILER icc)
if (INTEL_COMPILER)
include (CMakeForceCompiler)
cmake_force_c_compiler (icc "Intel C Compiler")
cmake_force_cxx_compiler (icpc "Intel C++ Compiler")
endif (INTEL_COMPILER)
因此,在这里,如果您没有英特尔编译器,CMake不会说什么,但是您可以轻松地在
else()
分支中添加消息(“您的路径中没有icc”)
谢谢你的回答:)