Chinaunix

标题: 请教 Unix下C++程序的makefile中CC指令参数顺序问题 [打印本页]

作者: rinai    时间: 2007-01-31 10:32
标题: 请教 Unix下C++程序的makefile中CC指令参数顺序问题
请教各位大侠,我的makefile执行的很怪,
做CC ... objects -o $@ $(LIB) 就可以编译过去,但是
  CC ... $(LIB) objects -o $@就不行
请问,这是怎么回事,谢谢!

PS:为了简化描述,"..."表示中间的其他东西略过,objects代表那些编译好的.o文件,LIB定义了一些链接库,例如 -lm等等。
作者: kiss007    时间: 2007-01-31 10:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: rinai    时间: 2007-01-31 10:41
标题: 回复 2楼 kiss007 的帖子
您的意思是要在编译.o文件时带上 LIB 吗?
还是说要做其他的操作
作者: kiss007    时间: 2007-01-31 11:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 清汤挂面    时间: 2007-01-31 22:48
链接的时候是自右向左的,也就是说,如果你有两个库LIB1和LIB2,LIB1当中用到了LIB2的全局变量,那么你就需要-l LIB1 -lLIB2
作者: whyglinux    时间: 2007-01-31 22:56
有的编译器在连接的时候要求库的连接选项要放到所有目标文件的后面,然而大多数的编译器没有这样的顺序要求。为通用起见,应该注意要始终把库的连接选项(主要是 -L 和 -l)放到命令行的后面。
作者: rinai    时间: 2007-02-01 14:53
感谢大家,对这个有点了解了!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2