gpt4 book ai didi

build - 通过配置选项将 CMake 与 icc 一起使用的推荐方法?

转载 作者:行者123 更新时间:2023-12-03 18:33:18 36 4
gpt4 key购买 nike

我想在基于 CMake 的项目中使用英特尔编译器 icc(或 icpc)(在 Linux 上它的值(value))。我当然可以在调用 cmake 时导出 CXX 变量,例如喜欢

CXX=icpc cmake ../

这很好用。但是,我想通过自定义选项提供此选择。为此,我解析自定义选项,例如
cmake -DMY_COMPILER_OPTION=Intel ..

作为
IF (MY_COMPILER_OPTION STREQUAL "Intel")
MESSAGE(STATUS "** Compiling with Intel settings **")
SET(CMAKE_CXX_COMPILER "icpc")
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -w")
SET(CMAKE_CXX_FLAGS_DEBUG "-g")
ENDIF ()

并设置 CMAKE_CXX_COMPILER连同一些编译器标志。这也有效,但是有一个重要的“但是”。

我也想使用选项 -ipo (过程间优化)在使用 icc 编译时为我的代码加上我需要在构建过程中编译一个静态库。为此,我需要使用英特尔的 xiar (还有 xilink 我猜)。

cmake 实际上为此提供了一个特殊的属性
set_property(TARGET mytarget PROPERTY INTERPROCEDURAL_OPTIMIZATION 1)

但是,这似乎只有在通过环境变量设置编译器时才能正常工作(然后使用 xiar)。通过 CMAKE_CXX_COMPILER 设置编译器时此属性被忽略。

有没有其他方法可以做到这一点?一些推荐的方式?或者至少是一种解决方法?

最佳答案

推荐的方式是运行 cmake 用合适的 CMAKE_<LANG>_COMPILER 定义。

Linux 用户

cmake -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_Fortran_COMPILER=ifort ..

Windows 用户

从英特尔编译器控制台:
cmake -G "NMake Makefiles" -DCMAKE_C_COMPILER=icl -DCMAKE_CXX_COMPILER=icl -DCMAKE_Fortran_COMPILER=ifort ..

关于build - 通过配置选项将 CMake 与 icc 一起使用的推荐方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9129233/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com