问题:
我在我的Ubuntu 16.04安装中使用CMake和GCC4.9链接glibcc/glibc++到共享库时遇到了困难。
其他条件:
加载共享库会在Red Hat生产环境中(我将其复制到该环境中)出现问题,我认为这是因为它使用了不同的libstc++版本(错误:未找到GLIBCXX_3_4_20)。我没有sudo权限,无法升级机器。
正如我从这篇博客,这个帖子中得出的结论,我尝试使用静态链接来链接libgcc和libgc++:
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static")
再次使用
set(CMAKE_SHARED_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static")
但那并不起作用。 确实 起作用的是这个 CMake 脚本:
add_library(myLib SHARED ${SOURCE_FILES})
set(CMAKE_EXE_LINKER_FLAGS " -static")
target_link_libraries(myLib -static-libgcc -static-libstdc++)
据我所知,-static-libgcc和-static-libstdc++是链接器选项而不是库,在我的了解中,这种做法可能是错误的...
问题: 如何正确地静态链接 -libgcc 和 -libstdc++?
提前感谢!