qt如何生成.so库文件

w176894443 2011-05-18 05:13:45
我在.pro里添加了TEMPLATE = lib,编译后也生成了.so文件,可是为什么我调用这个.so库里的函数时,找不到该函数呢?
是不是编译生成.so时还有什么需要注意的地方?比如声明库函数的接口等。
...全文
1291 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
w176894443 2011-05-23
  • 打赏
  • 举报
回复
还有,我的编的so库是类库
w176894443 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 imdemon 的回复:]

查看一下你SO文件的导出函数?
[/Quote]
hdll = dlopen("libsec.so", RTLD_LAZY);
pinit init = (pinit)dlsym(hdll, "init");
w176894443 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xunxun1982 的回复:]

是编译时找不到还是链接时找不到
前者是头文件问题,后者才是库的问题
[/Quote]
还需要加头文件吗?编译连接都过了,是执行的时候不行。
dbzhang800 2011-05-20
  • 打赏
  • 举报
回复
信息太少,比如,能有没有确认它找到的库就是你这儿生成的,等等
w176894443 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dbzhang800 的回复:]

只要你的.so文件成功生成了,剩下的和Qt就没什么关系了 ^_^

程序运行时如何找到动态库,属于运行态的问题。

Whenever a program loads and prepares to run, the shared libraries it needs are
sought in the following places:
■ Each of the directori……
[/Quote]
动态库找的到,是库里的函数找不到
imdemon 2011-05-20
  • 打赏
  • 举报
回复
查看一下你SO文件的导出函数?
xunxun 2011-05-20
  • 打赏
  • 举报
回复
是编译时找不到还是链接时找不到
前者是头文件问题,后者才是库的问题
w176894443 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dbzhang800 的回复:]

信息太少,比如,能有没有确认它找到的库就是你这儿生成的,等等
[/Quote]

确定就是我生成的那个库,库可以加载,就是调用里边的函数不行,是不是要在生成库文件的程序里说明一下库里函数的接口呢
dbzhang800 2011-05-18
  • 打赏
  • 举报
回复
只要你的.so文件成功生成了,剩下的和Qt就没什么关系了 ^_^

程序运行时如何找到动态库,属于运行态的问题。

Whenever a program loads and prepares to run, the shared libraries it needs are
sought in the following places:
■ Each of the directories listed in the colon-separated list in the environment
variable LD_LIBRARY_PATH
■ The list of libraries found in the file /etc/ld.so.cache, which is maintained
by the ldconfig utility
■ The directory /lib
■ The directory /usr/lib

如果只是你自己用的话

QMAKE_LFLAGS_RPATH
也可以考虑

16,213

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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