c – GCC:指定要构建的静态动态库

c – GCC:指定要构建的静态动态库,第1张

概述我有一个简单的C项目,结构如下: – 一个基础项目(即:包含main()),以及与其他所有内容的链接 – 一些自定义库都构建静态库(即:.a文件) —其中一个静态库使用共享目标文件中的功能(即:.so文件) 因此,例如,在完成所有初始编译之后,这就是项目在链接时(在树视图中)的显示方式: -myApp (the main application)--libaudio.a 我有一个简单的C项目,结构如下:
– 一个基础项目(即:包含main()),以及与其他所有内容的链接
– 一些自定义库都构建为静态库(即:.a文件)
—其中一个静态库使用共享目标文件中的功能(即:.so文件)

因此,例如,在完成所有初始编译之后,这就是项目在链接时(在树视图中)的显示方式:

-myApp            (the main application)--libaudio.a      (the audio library I made)--libnetwork.a    (the networking library I made)--libvIDeo.a      (the vIDeo library I made)--libboost.a      (boost library)

最初,这个项目建立得很好.我只需要确保我的makefile中有一个简单的行,如下所示:

liBS+=audio network vIDeo

最近,我不得不改变音频库的工作方式.我现在需要使用第三方库,我所拥有的只是头文件(.h)和共享对象(.so)文件.所以链接时的新结构如下所示:

-myApp              (the main application)--libaudio.a        (the audio library I made)---libthirdparty.so (contains third-party audio handling functions)--libnetwork.a      (the networking library I made)--libvIDeo.a        (the vIDeo library I made)--libboost.a        (boost library)

实际上,这意味着我有一个链接静态库的应用程序,该应用程序调用外部共享对象.因此,我将头文件放在适当的位置,以便在编译libaudio.a时没有任何构建错误,并将libthirdparty.so文件放在链接器搜索所有已安装库的位置.

在这一点上,我无法得到建设的东西.它只是没有看到libthirdparty.so文件,即使我知道它位于链接器默认搜索的位置.出于某种原因,包装我的libaudio代码,如下面的示例(从www.cplusplus.com借来的)修复了构建错误:

my_C_CPP_header.h:#ifndef MY_C_CPP_header#define MY_C_CPP_header/*check if the compiler is of C++*/#ifdef __cplusplusextern "C" {int myOtherCfunc(int arg1,int arg2); /* a C function */}#endifvoID myCppFunction1(); /* C++ function */voID myCppFunction2(); /* C++ function *//*check if the compiler is of C++ */#ifdef __cplusplus}#endif#endif

现在,我有一个新问题.现在它正在构建,它不再在libboost.a中静态链接,而是在启动时因libboost.so不存在而崩溃.因此,如果我设法完全构建libboost,这个设置会以某种方式破坏libboost的编译方式.

欢迎任何建议.谢谢大家.

解决方法 最后,有一个“liBPATH =”而不是覆盖库包含路径的“liBPATH =”语句.解决.

感谢大家的帮助.

总结

以上是内存溢出为你收集整理的c – GCC:指定要构建的静态/动态库全部内容,希望文章能够帮你解决c – GCC:指定要构建的静态/动态库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1230005.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存