社区
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到底在哪里
我该如何??
...全文
173
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
编译
时候如何配置
连接
库的搜索路径
交叉
编译
的时候不能使用本地(i686机器,即PC机器,研发机器)机器上的库,但是在做
编译
链接的时候默认的是使用本地库,即/usr/lib,/lib两个目录。因此,在交叉
编译
的时候,要采取一些方法使得在
编译
链接的时候找到需要的库。 首先,要知道:
编译
的时候只需要头文档,真正实际的库文档在链接的时候用到。 (这是我的理解,假如有不对的地方,敬请网上各位大侠指教) 然后,讲讲如何在交叉
编译
链接的时候
易语言linux静态
编译
失败,易语言静态
编译
连接
失败
程序写完后成功运行无错误,但是一静态
编译
就提升
连接
失败,但是我删除“是否与互联网
连接
()”这部分代码就能
编译
成功,求助解决。怎么不删除的情况下
编译
成功。以下是
编译
错误提示以及删除才能
编译
成功的代码部分。错误提示:正在进行名称
连接
...开始静态链接...命令行:"D:\易语言\易语言\VC98linker\Bin\link.exe" "C:\Users\Administrator\Desktop\...
C++
编译
、
连接
Windows中我们常用vs来
编译
编写好的C和C++代码,vs把编辑器,
编译
器和调试器等工具都集成在这一款工具中。linux下,通常我们使用vim编辑器,然后用gcc和g++
编译
、链接生成可执行程序。 我们很难说 C++ 拥有独立的
编译
器,例如 Windows 下的微软
编译
器(cl.exe)、Linux 下的 GCC
编译
器、Mac 下的 Clang
编译
器(已经是 Xcode 默认
编译
器,雄心...
C/C++
编译
、
连接
与执行
代码的
编译
连接
与执行过程 1.
编译
一个个源文件,经过
编译
系统的处理,生成目标文件的过程叫做
编译
。
编译
是对一个个源文件分别处理的,因此每个源文件构成了一个独立的
编译
单元
编译
过程中不同的
编译
单元互不影响。a.cpp和b.cpp这两个源文件经过
编译
后,在Linux下会生成a.o和b.o两个目标文件。 目标文件主要用来描述程序在运行过程中需要放在内存中的内容,这
Linux/Unix社区
23,222
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章