首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMake:如何将cmake强制到静态链接openmp?

CMake:如何将cmake强制到静态链接openmp?
EN

Stack Overflow用户
提问于 2020-11-14 13:06:59
回答 1查看 821关注 0票数 2

我知道如何使用cmake以跨平台的方式链接openmp。

代码语言:javascript
复制
find_package(OpenMP REQUIRED)
link_libraries(OpenMP::OpenMP_CXX)

--但我不知道如何强制cmake到静态链接openmp,实际上,关于openmp库的所有cmake官方变量都是动态的。

无论如何,这样做的非跨平台方式是:

代码语言:javascript
复制
clang++ -std=c++2a test.cpp -Iinclude -march=native -O3 -c          
clang++ test.o -o test.x /usr/local/lib/libomp.a -pthread  

或者如果你用gcc

代码语言:javascript
复制
g++-10 -std=c++2a test.cpp -Iinclude -march=native -O3 -c 
g++-10 test.o -o test.x /usr/local/opt/gcc/lib/gcc/10/libgomp.a -pthread 

顺便问一下,这是个cmake缺陷,还是有其他方法来完成它?

EN

回答 1

Stack Overflow用户

发布于 2020-11-14 14:25:09

不是一个回答,而是太多,不适合在一个评论。

除了cmake之外,我对OpenMP一无所知:https://cmake.org/cmake/help/latest/module/FindOpenMP.html?highlight=openmp

我没有看到任何涉及静态/共享的文档。也许你是对的,它只支持共享的语言。

问官方话语的双重检查:https://discourse.cmake.org/

您也可以尝试阅读官方的FindOpenMP.cmake模块,因为这都是开源的。

编辑:

如果您是正确的,则cmake缺少此功能,请考虑贡献并添加它:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64834219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档