c – Linux,静态lib引用可执行文件中的其他静态库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c – Linux,静态lib引用可执行文件中的其他静态库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1017字,纯文字阅读大概需要2分钟。
内容图文
![c – Linux,静态lib引用可执行文件中的其他静态库](/upload/InfoBanner/zyjiaocheng/955/d7411aecd16a4a73b6a5337d859dce4e.jpg)
我正在创建一个应用程序,它包含两个静态库和一个可执行文件.
让我们调用两个静态库:
libusefulclass.a
libcore.a
和申请:
MYAPP
libcore实例化并使用libusefulclass中定义的类(让我们称之为UsefulClass)
现在,如果我按以下方式链接应用程序:
g++ -m64 -Wl,-rpath,/usr/local/Trolltech/Qt-4.5.4/lib -o myapp src1.o src2.o srcN.o -lusefulclass -lcore
链接器抱怨找不到libusefulclass中的方法:
undefined reference to `UsefulClass::foo()'
等等
我找到了一个解决方法:
如果UsefulClass也在可执行文件本身的源文件中实例化,则应用程序链接没有任何问题.
我的问题是:是否有更简洁的方法使libcore引用libusefulclass中定义的方法,或者静态库只是无法相互链接?
TIA
P.S.:如果重要:使用Qt在C中开发应用程序,但我觉得这不是Qt问题,而是一般的库问题.
解决方法:
您需要以依赖项的相反顺序指定库,因此请使用
g++ -m64 -Wl,-rpath,/usr/local/Trolltech/Qt-4.5.4/lib -o myapp src1.o src2.o srcN.o -lcore -lusefulclass
如果存在循环依赖关系,您甚至可能需要两次指定库,
g++ -m64 -Wl,-rpath,/usr/local/Trolltech/Qt-4.5.4/lib -o myapp src1.o src2.o srcN.o -lusefulclass -lcore -lusefulclass
内容总结
以上是互联网集市为您收集整理的c – Linux,静态lib引用可执行文件中的其他静态库全部内容,希望文章能够帮你解决c – Linux,静态lib引用可执行文件中的其他静态库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。