对 linux C 编程 makefile书写的疑问(三)

feilongzafei 2011-02-13 08:14:44
下面是一个makefile:

CC=gcc
CFLAGS= -Iinclude -Wall -g -DDEBUG
LDFLAGS=-L./lib -Wl,-rpath=./lib -Wl,-rpath=/usr/local/lib

myapp: main.o test1.o test2.o test3.o test4.o test5.o
$(CC) -o $@ $(LDFLAGS) $^ -ldl

clean:
rm -rf *.o myapp


几点疑问:
1.LDFLAGS=-L./lib -Wl,-rpath=./lib -Wl,-rpath=/usr/local/lib
求高手帮解释一下 -Wl干什么用的?

2.$(CC) -o $@ $(LDFLAGS) $^ -ldl

$(LDFLAGS)是库文件的位置,-ldl是具体的库的名字, 对(LDFLAGS) 和 -ldl之间存在$^有些不解,不是不知$^是什么,知道$^是依赖目标,而是对$(LDFLAGS) $^ -ldl的排列顺序有些疑问,求解释一下makefile命令的具体命令规则顺序是怎样写的,举个例子:就是$(CC) -o $@ $(LDFLAGS) $^ -ldl
是按什么要求进行排列的?
求具体的排列顺序的方法。

初学linux,处处不懂。
以上两点希望有经验的人士帮解决一下!



...全文
152 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
feilongzafei 2011-02-14
  • 打赏
  • 举报
回复
谢谢各位!
帅得不敢出门 2011-02-14
  • 打赏
  • 举报
回复
man gcc
justkk 2011-02-14
  • 打赏
  • 举报
回复
通常是这样
gcc 1.c -o yourexe -L/LIB -ltest
或者gcc -o yourexe 1.c -L/LIB -ltest
李迟 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 feilongzafei 的回复:]
引用 1 楼 subfate 的回复:
有些书上说链接标志(LDFLAGS)要放到最后比较好。
最具体的只有去看官方的manual了。

请问官方的manual去哪里查看?
[/Quote]
google->gcc
feilongzafei 2011-02-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 subfate 的回复:]
有些书上说链接标志(LDFLAGS)要放到最后比较好。
最具体的只有去看官方的manual了。
[/Quote]
请问官方的manual去哪里查看?
李迟 2011-02-13
  • 打赏
  • 举报
回复
有些书上说链接标志(LDFLAGS)要放到最后比较好。
最具体的只有去看官方的manual了。

23,127

社区成员

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

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