如何使gcc链接器不链接特定版本的库

tianxiadys 2016-08-23 04:26:17
在默认情况下,gcc会链接诸如libc.so.1之类的,特定版本的库
如何使gcc连接libc.so这样的,版本无关的库呢
...全文
613 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-08-25
  • 打赏
  • 举报
回复
实现 每个客户那里运行一遍ln 难吗?
tianxiadys 2016-08-25
  • 打赏
  • 举报
回复
有没有人管啊
tianxiadys 2016-08-23
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
ln 文件连接 软连接 硬连接 和 ld GNU的连接器,将目标文件连接为可执行程序 不是一回事!
哦sorry,我弄混了 我总不能去每个客户那里运行一遍ln? 感谢你的提醒,我会去看看源码
赵4老师 2016-08-23
  • 打赏
  • 举报
回复
ln 文件连接 软连接 硬连接 和 ld GNU的连接器,将目标文件连接为可执行程序 不是一回事!
赵4老师 2016-08-23
  • 打赏
  • 举报
回复
虽然我不会解决你的具体问题,但我可以提醒你:gcc是开源的。
tianxiadys 2016-08-23
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
ln命令不行吗?
不论使用gcc还是ln,链接过程都是由ln来完成的,ln是gcc过程的一部分 在默认情况下,gcc和ln都会将程序链接到库的特定版本
赵4老师 2016-08-23
  • 打赏
  • 举报
回复
ln命令不行吗?
tianxiadys 2016-08-23
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
libc.so不是版本无关的库,是连接到比如libc.so.1的文件而已。我猜。
libc.so确实不是版本无关的库,在大多数系统中,libc.so这样的东西都是链接,链接到一个具体的版本,比如libc.so.1 但对于我的test程序来说,连接到libc.so和libc.so.1是有很大区别的,如果目标系统比我新,那么他可能没有libc.so.1而只有libc.so.2,这时,我的程序将不能运行 所以我想问问有没有一个命令行能够使gcc将程序链接至*.so而不是*.so.1,这确实会使系统变得不稳定,但是会使程序的兼容性变得更好
赵4老师 2016-08-23
  • 打赏
  • 举报
回复
libc.so不是版本无关的库,是连接到比如libc.so.1的文件而已。我猜。
tianxiadys 2016-08-23
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
用ldd命令查看可执行文件依赖的库。 用ln命令连接文件或目录。
请正面回答问题
赵4老师 2016-08-23
  • 打赏
  • 举报
回复
用ldd命令查看可执行文件依赖的库。 用ln命令连接文件或目录。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧