问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

LINUX下要在C中嵌入Python,编译的时候怎样解决库的连接问题

发布网友 发布时间:2022-04-26 14:28

我来回答

1个回答

热心网友 时间:2022-04-18 21:24

原因分析:
先看几个概念:
与外部库连接

外部库有两种: (1)静态连接库lib.a
        (2)共享连接库lib.so
共同点:
.a, .so都是.o目标文件的集合,这些目标文件中含有一些函数的定义(机器码),而这些函数将在连接时会被最终的可执行文件用到。
区别:
静态库.a : 当程序与静态库连接时,库中目标文件所含的所有将被程序使用的函数的机器码被copy到最终的可执行文件中。
共享库.so : 与共享库连接的可执行文件只包含它需要的函数的表,而不是所有的函数代码,在程序执行之前,那些需要的函数代码被拷贝到内存中,这样就使可执行文件比较 小,节省磁盘空间(更进一步,操作系统使用虚拟内存,使得一份共享库驻留在内存中被多个程序使用)。共享库还有个优点:若库本身被更新,不需要重新编译与 它连接的源程序。

具体分析:
编译器会给出上述错误信息,这是因为sqrt函数不能与外部数学库"libm.a"相连。sqrt函数没有在程序中定义,也不存在于默认C库 "libc.a"中,应该显式地选择连接库。上述出错信息中的"/tmp/ccdzoSZq.o"是gcc创造的临时目标文件,用作连接时用。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
橙子冷藏能保存多久 橙子会过期吗 新鲜橙子如何保存更久 橙子保鲜剂对人体有害吗 粒上皇开口熟栗120g*5袋(共600g)-详细介绍 三皇王板栗介绍 品牌榜:2024年板栗十大品牌排行榜 投票结果公布【新】 为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 QQ上星标朋友什么意思? 如果拉黑了一个朋友但星标好友还在怎么取消掉啊? 香菇需要怎样的生活条件? 苹果电脑一定要注册apple id吗 香菇怎样选,怎样煮才更香? 买个2手苹果笔记本没有苹果ID怎么办 苹果电脑也要用id号吗 苹果电脑必须用id吗 香菇怎样弄好吃 哪些app可以设计户型 有没有户型图就可以设计装修的软件 电脑,屏幕截图按什么键 网络桥接是什么意思 1万元工资交多少公积金 一个月的工资是1万元,需要交纳个人所得税多少元? 一个月1万多的工资要交多少税? 我的工资1万元,个人所得税要交多少? 一万元应该缴纳多少个人所得税 月薪1万要交多少税 父亲节礼物的父亲节送礼方案 为什么把一个人设为星标好友,但是却显示了两个,是同一个人,怎么弄都... 广州地铁站的14个站点停止运营,当地的疫情情况有多严峻? 武汉地铁2号线停运了吗? 郑州两大站点所有列车停运? 快递网点停业会造成哪些后果 qq加好友验证怎么取消 中通快递网点停运快件退回该怎么办? 什么情况啊。干嘛好多火车票都没有了。 部分车次停运较多? 注意!济宁火车站部分车次济宁站停运! 2022.4.10后现在浦西到浦东国际机场的开车最佳路线? 地铁晚上几点钟停运? 怎么反应高铁,有些站点停运的问题? 各位天津的朋友,请问天津火车站停运了吗? 北京到石家庄的火车停运了吗 看图写话扫地擦桌子洗衣服浇花 幼儿园擦桌子1公斤水兑多少84消毒原液 二次安装钉钉打印机如何打印码 智能加湿器的工作原理是什么?它都可以用来干什么? 纯净型加湿器的工作原理及应用是什么? 加湿器的作用有哪些?