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

下面是一个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,处处不懂。
以上两点希望有经验的人士帮解决一下!



作者: feilongzafei   发布时间: 2011-02-13

有些书上说链接标志(LDFLAGS)要放到最后比较好。
最具体的只有去看官方的manual了。

作者: subfate   发布时间: 2011-02-13

引用 1 楼 subfate 的回复:
有些书上说链接标志(LDFLAGS)要放到最后比较好。
最具体的只有去看官方的manual了。

请问官方的manual去哪里查看?

作者: feilongzafei   发布时间: 2011-02-13