首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CMake中以可移植的方式获取libstdcxx隐式链接目录

如何在CMake中以可移植的方式获取libstdcxx隐式链接目录
EN

Stack Overflow用户
提问于 2012-11-08 13:50:32
回答 1查看 898关注 0票数 1

背景是,我们的项目必须与不同的GCC版本(,ABI可能不兼容),几个版本GCC安装在我们的构建服务器。我们使用包装器项目设置LD_LIBRARY_PATH,通过export LD_LIBRARY_PATH=/path/to/gcclib/准备环境,并在包装脚本中启动应用程序。

由于使用了gcc/g++的不同风格,我们想知道是否有一种简单的方法可以获得链接libstdc++.so的隐式库路径。例如,GCC工具中的一个安装在/opt/ GCC 4/gcc4.7/bin/g++中,libstdc++.so可以在/opt/GCC 4/gcc4.7/lib/中找到,而/usr/local/bin/g++和/usr/lib/libstdc++。

EN

回答 1

Stack Overflow用户

发布于 2012-11-09 06:31:14

我认为您在设置CMAKE_{C,CXX}_COMPILER vars时指定了一个绝对路径。在这种情况下,您可以使用它获得库dir:

代码语言:javascript
复制
get_filename_component(GCC_PATH ${CMAKE_C_COMPILER} PATH)
#now ${GCC_PATH} contains "/opt/gcc4/gcc4.7/bin", for example
set(LIBSTD_PATH "${GCC_PATH}/../lib")

对于系统编译器,可以使用if语句:

代码语言:javascript
复制
if(GCC_PATH STREQUAL /usr/local/bin)
set(LIBSTD_PATH "/usr/lib")
endif()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13290282

复制
相关文章

相似问题

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