【发布时间】:2012-12-07 09:36:33
【问题描述】:
我正在使用 ACE 库来执行一些反应器工作。在 linux 上,默认的 ACE 编译输出是 libACE.so。我通常使用 -lACE 编译选项来编译它,但这取决于我是否在 ld.so.conf.d 目录中配置了 libACE.conf。 如果我想子类 ACE_Task,它可以从 ACE.so 导入,编译依赖于 libACE.so,如果我想动态加载 ACE.so,我该怎么做? 我试过了,如果我使用 dlopen ,则会发生链接错误。 那么,有什么办法可以动态加载ACE.so,而且还能像这样实现ACE_Task吗?
class test: public ACE_Task<ACE_MT_SYNCH>
{
}
【问题讨论】:
-
那么你的库是否配置了
ld.so.conf? -
我已经配置了ld.so.conf,编译也可以,但是当我想在另一台PC上释放所有文件时,我必须配置ld.so.conf,有什么方法可以对来自 .so 文件的类进行子类化,并且我仍然可以在运行时加载它?
标签: linux loadlibrary shared-libraries