gpt4 book ai didi

c++ - linux dlopen找不到静态库的符号

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:48 29 4
gpt4 key购买 nike

我有一个使用共享库的可执行项目,其中包括静态库。然后,我尝试使用 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 1SHARED LIB 2 均从 /usr/lib 链接。

看来我错过了一些标志。

我该如何解决这个问题?

最佳答案

使用什么标志来构建“SHARED LIB 1”?AFAIK -fvisibility 不会影响静态库。

但是,如果您在链接时使用--exclude-libs,则“Static Lib 1”符号将被删除。

希望这个问题可以有所帮助:How to apply gcc -fvisibility option to symbols in static libraries?

关于c++ - linux dlopen找不到静态库的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32649337/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com