首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcc链接问题

gcc链接问题
EN

Stack Overflow用户
提问于 2008-10-16 06:12:39
回答 2查看 1K关注 0票数 4

我正在尝试创建一个包装library的库(您不需要了解lib紫色的任何信息就可以在这里提供帮助)。Lib紫色依次加载“插件”(Plugins),这些插件就是。所以可以通过dlopen之类的方式访问。这些插件反过来又会调用libpurple中的函数。

我可以很好地构建我的库,但是当它调用适当的libpurple函数,并且library试图加载一个插件时,我会得到一个错误,如下所示:

符号查找错误:/usr/local/lib/pur-2/autoaccept.so.因此:未定义符号: purple_user_dir

purple_user_dir是用libpurple定义的函数。当我构建一个链接到library的程序(而不是库)时,没有问题。我试过使用-导出-动态,这似乎没有帮助。以下是我的构建命令:

代码语言:javascript
复制
gcc -export-dynamic -I/usr/local/include/libpurple -I/usr/include/python2.5 -DH\
AVE_CONFIG_H -I. -DSTANDALONE -DBR_PTHREADS=0 -DDATADIR=\"/usr/local/share\" -D\
LIBDIR=\"/usr/local/lib/purple-2/\" -DLOCALEDIR=\"/usr/local/share/locale\" -DS\
YSCONFDIR=\"/usr/local/etc\" -Wall  -Waggregate-return -Wcast-align -Wdeclarati\
on-after-statement -Wendif-labels -Werror-implicit-function-declaration -Wextra\
 -Wno-sign-compare -Wno-unused-parameter -Winit-self -Wmissing-declarations -Wm\
issing-noreturn -Wmissing-prototypes -Wpointer-arith -Wundef -Wp,-D_FORTIFY_SOU\
RCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/inc\
lude/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/gl\
ib-2.0/include   -I/usr/include/libxml2   -g -g -O2 -c -o spurple.o spurple.c

gcc -shared -g -O2 -Wl,--export-dynamic -pthread 
../../libpurple/.libs/libpurple.so -o spurple.so spurple.o 
-Wl,--export-dynamic  /usr/local/lib/libpurple.so 
-ldbus-glib-1 -ldbus-1 /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so 
-ldl /usr/lib/libgthread-2.0.so -lrt /usr/lib/libglib-2.0.so 
/usr/lib/libxml2.so -lm -lpython2.5 -lutil -lpthread -lnsl -lresolv

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2008-10-16 06:55:07

我将尝试使用lddnm unix命令来查找包装器和包装库中的符号。

票数 1
EN

Stack Overflow用户

发布于 2008-10-16 13:30:37

不过,在构建应用程序时,与运行应用程序时相比,您有不同的LD_LIBRARY_PATH环境变量吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/207575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档