社区
Linux/Unix社区
帖子详情
编译连接时候的问题
thisisll
2005-11-30 05:25:54
现在有B.a里面放着b.o
我写了一个a.c
a.c里面调用了b.o的东西
如果我要编译连接a.c
那么
gcc -c a.c
gcc a.o -lB
可是我要把a.o放到B.a里面
那么生成a.o后
就要用ar把a.o放到B.a中了
可是没有连接,也就无法告诉a.o需要的b.o到底在哪里
我该如何??
...全文
160
12
打赏
收藏
编译连接时候的问题
现在有B.a里面放着b.o 我写了一个a.c a.c里面调用了b.o的东西 如果我要编译连接a.c 那么 gcc -c a.c gcc a.o -lB 可是我要把a.o放到B.a里面 那么生成a.o后 就要用ar把a.o放到B.a中了 可是没有连接,也就无法告诉a.o需要的b.o到底在哪里 我该如何??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gettext
2005-12-01
打赏
举报
回复
你可能是把编译和连接给弄混了。
thisisll
2005-12-01
打赏
举报
回复
有些问题
不问清楚永远都不清楚
------------------
连接使他得到函数的偏移量
那也就是说
总有个可执行程序在连接的时候最终调用到A.a中的a.o
然后a.o中的那个函数的偏移量就在这个时候得到了
我的理解对吗?
thisisll
2005-12-01
打赏
举报
回复
我也不想这样~~
饶着确实累啊
算了
大家休息吧~~
揭贴了~~~
lixiaosan
2005-12-01
打赏
举报
回复
就是整得有点麻烦了 。。。
直接弄到一个 .a就可以了。。。绕来绕去的。。人都绕昏了。。:)
yjf7888
2005-12-01
打赏
举报
回复
可以,没有问题
thisisll
2005-12-01
打赏
举报
回复
请楼上赐教
我之前就是看了这里才这么多莫名其妙的想法的
http://www-128.ibm.com/developerworks/cn/linux/l-dynlink/index.html#N10043
tb01412
2005-11-30
打赏
举报
回复
你难道不可以全部编译成.o文件之后再一起打包成库吗?????????简单的问题复杂化!!!
thisisll
2005-11-30
打赏
举报
回复
连接使他得到函数的偏移量
那也就是说
总有个可执行程序在连接的时候最终调用到A.a中的a.o
然后a.o中的那个函数的偏移量就在这个时候得到了
我的理解对吗?
bekars
2005-11-30
打赏
举报
回复
都放到B.a里了
那a.o就能找到b.o了吗?
从一开始我都没有告诉a.o他需要的函数在b.o中啊
当然可以!
如果我想把B.a放到A.a里
然后把a.o也放到A.a里
那a.o怎么知道他要的在A.a中的B.a中
所以的静态链接库相当于一个模块,所有的函数都是可见的(只要你包含正确的头文件),所以a.o可以找到它需要的东西。
thisisll
2005-11-30
打赏
举报
回复
还有问题
如果我想把B.a放到A.a里
然后把a.o也放到A.a里
那a.o怎么知道他要的在A.a中的B.a中
thisisll
2005-11-30
打赏
举报
回复
都放到B.a里了
那a.o就能找到b.o了吗?
从一开始我都没有告诉a.o他需要的函数在b.o中啊
bekars
2005-11-30
打赏
举报
回复
晕,需要这么复杂吗?
你直接将编译好的b.o和a.o一起ar为B.a不就可以了,不要把问题复杂化。
Win-Masm v2.2 汇编集成
编译
器
界面的人性化设计,告别了在DOS平台下对汇编文件的编辑、
编译
、
连接
、运行等相关操作需要通过枯燥、繁琐并容易出错的命令敲打来完成的尴尬局面。一键
编译
/
连接
/运行/Debug的傻瓜式操作使得汇编爱好者能够更加专注于...
【全教程】qt
连接
mysql——从qt
编译
mysql驱动到qt
连接
mysql数据库(二、
编译
连接
)
【全教程】qt
连接
mysql——从qt
编译
mysql驱动到qt
连接
mysql数据库(一、
编译
连接
前准备) 一、测试结果(测试
连接
代码在第一篇文章中) 1.第一种:可用驱动中有QMYSQL这个驱动,但是不能加载(刚尝试qt
连接
mysql...
什么是
编译
、什么是
连接
。C++代码如何变成机器码,如何跨平台和嵌入式?嵌入式开发
什么是
编译
、什么是
连接
。C++代码如何变成机器码,如何跨平台和嵌入式? 坑,未填完 1、
编译
和
连接
是两个过程。前者是将源码变成机器码。后者是将机器码组织起来,形成一个可执行文件;组织的过程中,需要用到从...
c语言源程序文件通过了
编译
连接
之后,C语言源程序文件通过了
编译
、
连接
之后,生成一个后缀为.EXE的文件。...
C语言源程序文件通过了
编译
、
连接
之后,生成一个后缀为.EXE的文件。更多相关
问题
府兵制行用于西魏、北周至隋唐时期,最早为西魏时()所创,起源于鲜卑的部落兵制。林肯拥有来自北美的严苛安全标准,以下关于沃尔沃...
交叉
编译
时候如何设置
连接
库的搜索路径
交叉
编译
的时候不能使用本地(i686机器,即PC机器,开发机器)机器上的库,但是在做
编译
链接的时候默认的是使用本地库,即/usr/lib,/lib两个目录。因此,在交叉
编译
的时候,要采取一些方法使得在
编译
链接的时候找到...
Linux/Unix社区
23,216
社区成员
74,539
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章