关于makefile的问题

vv1133 2010-09-12 07:54:23
请问在makefile中
$(LD) $^ -T link.ld -o $@

$(LD) -T link.ld $^ -o $@
有什么区别?

link.ld是链接脚本,里面有需要的静态链接库。
用上面的指令能正常链接,而用下面的会报错,应该和链接库有关
...全文
72 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vv1133 2010-09-14
  • 打赏
  • 举报
回复
谢谢[Quote=引用 4 楼 mymtom 的回复:]
$(LD) $^ -T link.ld -o $@

$^ 里的函数调用 -T link.ld 指定的静态库里的函数,所以应该将
$^ 放在前面。
[/Quote]
louyong0571 2010-09-13
  • 打赏
  • 举报
回复
命令顺序的问题啊
mymtom 2010-09-12
  • 打赏
  • 举报
回复
$(LD) $^ -T link.ld -o $@

$^ 里的函数调用 -T link.ld 指定的静态库里的函数,所以应该将
$^ 放在前面。
vv1133 2010-09-12
  • 打赏
  • 举报
回复
我也知道是链接顺序的问题,我想知道的是makefile这2种写法有什么区别
[Quote=引用 2 楼 mymtom 的回复:]
连接顺序的原因。
静态链接库需要按调用关系安排链接的顺序。

动态库应该应该不会有问题的
[/Quote]
mymtom 2010-09-12
  • 打赏
  • 举报
回复
连接顺序的原因。
静态链接库需要按调用关系安排链接的顺序。

动态库应该应该不会有问题的
coding码场 2010-09-12
  • 打赏
  • 举报
回复
ld连接就是这样啊,要先跟材料,也就是$^,再跟选项、参数,最后是目标$@。

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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