【发布时间】:2012-05-23 13:25:00
【问题描述】:
我正在编写一个由另一个程序动态加载的库。该库使用一些 Boost 库(例如,线程)。是否可以在不重新编译相关程序的情况下使其以某种方式工作?
如果我使用链接标志-lboost_thread,它不起作用,因为使用这个库的程序也需要链接同一个 Boost 库。使用/usr/lib/libboost_thread.a 也不起作用,因为.a 文件不是用-fPIC 编译的。
我在 Linux 下使用 GCC。
【问题讨论】:
-
你的意思是加载你的库的程序需要在运行时加载boost库吗?您不需要在构建时将该库链接到主应用程序,它只是一个运行时依赖项......对吗?
-
程序加载一个我写的动态库。该库依赖于 Boost。
-
那么问题是程序在运行时找不到Boost库,所以你的库加载失败?
标签: c++ gcc shared-libraries dynamic-loading