Intel /C++有许多定制标志,其中一些是混合编译和链接的(如-qopenmp
),而另一些则是特殊的替代形式(例如用于与英特尔ipp库链接的-ipp
)。
我可以将这些标志“手动”添加到编译器标志中,忽略它们可能具有链接含义的事实;或者将它们添加到编译和链接标志中。但这两种选择似乎都“过时”了。如何正确地处理CMake中各种特定于ICC的标志?
发布于 2022-01-03 07:30:12
第一步:https://cmake.org/cmake/help/latest/release/3.20.html#compilers
现在,编译器id
支持英特尔oneAPI NextGen LLVM编译器:
Linux上的icx
/icpx
C/C++编译器和oneAPI 2021.1中的icx /C++编译器都完全被支持。
ifx
2021.1支持Linux上的oneAPI Fortran编译器。
Windows上的ifx
Fortran编译器还不受支持。
编译器id Intel
.继续支持英特尔oneAPI经典编译器(icc
、icpc
和ifort
)。
因此,如果我是您,我将使用编译器id Intel
传递icc特殊标志。
参考文献:https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html
if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
add_compile_definitions(...) # CMake 3.12
add_compile_options(...)
add_link_options(...) # CMake 3.13
endif()
参考文献:
https://stackoverflow.com/questions/70557223
复制相似问题