社区
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到底在哪里
我该如何??
...全文
189
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写文章
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 汇编集成
编译
器
[软件介绍] Win-Masm是一个界面友好、操作简单,并且非常实用的8086汇编IDE开发环境。它基于masm6.15
编译
核心(同时兼容masm5.1)。支持语法高亮显示(并可自定义修改)、错误行快速定位、无限次Undo/Redo功能、Word式查找/替换功能、支持中文路径及长文件名等优点。界面的人性化设计,告别了在DOS平台下对汇编文件的编辑、
编译
、
连接
、运行等相关操作需要通过枯燥、繁琐并容易出错的命令敲打来完成的尴尬局面。一键
编译
/
连接
/运行/Debug的傻瓜式操作使得汇编爱好者能够更加专注于汇编语言的学习。 欲了解更多,请在安装完成后查看帮助手册! 软件官方博客:http://blog.csdn.net/paullbm
交叉
编译
时候如何配置
连接
库的搜索路径
摘取自:http://james23dier.iteye.com/blog/733030 交叉
编译
时候如何配置
连接
库的搜索路径 交叉
编译
的时候不能使用本地(i686机器,即PC机器,研发机器)机器上的库,但是在做
编译
链接的时候默认的是使用本地库,即/usr/lib,/lib两个目录。因此,在交叉
编译
的时候,要采取一些方法使得在
编译
链接的时候找到需要的库。 首先,要知道:
编译
的时候
编译
时候如何配置
连接
库的搜索路径
交叉
编译
的时候不能使用本地(i686机器,即PC机器,研发机器)机器上的库,但是在做
编译
链接的时候默认的是使用本地库,即/usr/lib,/lib两个目录。因此,在交叉
编译
的时候,要采取一些方法使得在
编译
链接的时候找到需要的库。 首先,要知道:
编译
的时候只需要头文档,真正实际的库文档在链接的时候用到。 (这是我的理解,假如有不对的地方,敬请网上各位大侠指教) 然后,讲讲如何在交叉
编译
链接的时候
程序
编译
+
连接
的简单过程
1.程序的翻译环境和执行环境 在ANSI C的任何一种实现(
编译
器)中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。 test.c要经过翻译环境变成可执行程序。可执行程序(test.exe)依赖执行环境实现效果。 二进制指令只有机器可以读懂,所以也叫机器指令。 翻译环境就是将C语言的源代码翻译成机器能读懂的二进制指令 翻译环境可以再分为两个过程:
编译
和链接 C语言源代码经过
编译
会生成一个目标文件,目标
c语言源程序文件通过了
编译
连接
之后,C语言源程序文件通过了
编译
、
连接
之后,生成一个后缀为.EXE的文件。...
C语言源程序文件通过了
编译
、
连接
之后,生成一个后缀为.EXE的文件。更多相关
问题
府兵制行用于西魏、北周至隋唐时期,最早为西魏时()所创,起源于鲜卑的部落兵制。林肯拥有来自北美的严苛安全标准,以下关于沃尔沃XC90安全类配置正确的是()在配送客户销售退回流程中,开票员为了完成任务或其他原因恶意多开而导致退货的属于()以下哪种疾病增大可致鼻唇沟消失,鼻翼抬高,鼻孔变形。()发动机水温过高,属于冷却系的...
Linux/Unix社区
23,224
社区成员
74,537
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章