QT 调用 GTK开发的.so失败

cczlp 2007-11-21 11:26:16
dlopen失败,dlerror() 返回信息是undefined symbol: gtk_window_new
用gtk开发的.so中包含界面.

如何解决?
...全文
131 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cczlp 2007-11-22
  • 打赏
  • 举报
回复
已经解决了, 我在Makefile最终链接时指定gtk库路径就可以了.
其实源码由多个.c文件组成, 包含界面的c文件生成.o时已经指定链接gtk库了, 不知道为什么在
最终生成.so时还要指定一次.
hefuhua 2007-11-21
  • 打赏
  • 举报
回复
#ls -l 开发的.so
看看是不是链接,不是就

#ldd 开发的.so
再看看路径上的对于的库,有没有正确的位置上存在gtk相关的库
hefuhua 2007-11-21
  • 打赏
  • 举报
回复
* cczlp
* 不惑
* 等 级:


发表于:2007-11-21 13:28:013楼 得分:0
这个so用gtk开发的程序调用完全正确.

====================================
完全正确就查下你的用的gtk库的对应版本,找到该gtk_window_new函数头文件定义原型..
hefuhua 2007-11-21
  • 打赏
  • 举报
回复
* cczlp
* 不惑
* 等 级:


发表于:2007-11-21 13:28:013楼 得分:0
这个so用gtk开发的程序调用完全正确.

====================================
完全正确就查下你的用的gtk库的对于版本,找到该gtk_window_new函数头文件定义原型..
hefuhua 2007-11-21
  • 打赏
  • 举报
回复
看看gtk装了没有,没装去把gtk和gtk-dev装下..注意要是你系统上版本

如果装了,你的那些gtk-*.so库都能到/usr目录下找到

就用LD_LIBRARY_PATH环境变量解决
如:exprot LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/gtk-dir

或者man ldconfig

cczlp 2007-11-21
  • 打赏
  • 举报
回复
这个so用gtk开发的程序调用完全正确.
cczlp 2007-11-21
  • 打赏
  • 举报
回复
用ldd -r my.so 显示
undefined symbol: gtk_window_new (./libmy.so)
....

还有很多, 都是gtk方面的.

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧