背景是,我们的项目必须与不同的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++。
发布于 2012-11-09 06:31:14
我认为您在设置CMAKE_{C,CXX}_COMPILER vars时指定了一个绝对路径。在这种情况下,您可以使用它获得库dir:
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语句:
if(GCC_PATH STREQUAL /usr/local/bin)
set(LIBSTD_PATH "/usr/lib")
endif()https://stackoverflow.com/questions/13290282
复制相似问题