Linux DLPon找不到静态库的符号
linux dlopen can not find static library's symbol
我有一个使用共享库的可执行项目,其中包括一个静态库。然后从可执行文件中,我尝试用dlopen
加载另一个共享库。找到了该库,但无法从静态库中找到符号。
结构如下:
-- SHARED LIB 1
-- (compiled with) Static Lib 1
-- EXECUTABLE
-- SHARED LIB 1
-- dlopen SHARED LIB 2 XX ERROR: SHARED LIB 2 cannot find symbols of Static Lib 1
SHARED LIB 1
和SHARED LIB 2
都是由/usr/lib
连接而来的。
我好像漏掉了一些标志。
我该如何解决这个问题?
使用什么标志来构建"SHARED LIB 1"?AFAIK -fvisibility不会影响静态库。
然而,如果你使用--exclude-libs
链接,"Static Lib 1"的符号将被删除。
希望这个问题可以帮助:如何将gcc -fvisibility选项应用于静态库中的符号?
相关文章:
- 使用gcc从静态链接的文件中查找可选符号
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- 如果我想链接静态库并删除未使用的符号.txt我应该如何处理 Cmakelist
- 限制静态库中符号的可见性 (MSVC/Visual C++)
- 仅在少数方法(静态或共享库)中解析的外部符号
- MSVC2019 静态库中缺少符号名称
- 使用静态 constexpr 成员的未解析外部符号
- 协议缓冲区的静态链接会导致与现有符号冲突
- ctypes,添加静态库时未定义的符号
- 在Qt5上去静态库:架构的未定义符号x86_64:
- 为什么链接器报告全局函数的乘法定义符号,而不是类静态方法
- 覆盖性静态分析说无符号的int是char(C++)
- 作为成员的静态类模板实例会导致未解析的外部符号错误
- DLL 链接静态库 - 未使用函数中未解析的链接器符号
- 如何防止静态库中的重复符号?
- CURL 静态链接未解析的外部符号
- 动态库没有静态库文件的符号
- 使用静态变量未解析的外部符号/未定义的引用时出错
- 未解析的外部符号静态变量(标头中定义的方法使用的变量)
- 奇怪的无符号静态常量不是类模板中的常量表达式