在项目中增加了新的库,重构了一下项目,依赖关系更加复杂了,于是在一个单独的项目文件夹中也放了一个makefile进去,make一下出现了
使用-c是编译成.o的中间文件,这一步只检查语法错误,不检查依赖关系,所以不能加-l,因为既然不检查依赖关系,你给他指明链接文件,岂不多余
但是-l还是要加的,只要在使用.o文件最终链接时加上就可以了,无论依赖关系多么复杂,只要记住一个c一个o,然后把一个文件夹里的o弄到一个链接库a里,最后用所有的o,-l所有的a,链接成为可执行文件
一句话,编译是编译,链接是链接,编译的时候不能链接,链接的时候不要再编译,所以-c与-l两个选项不能同时使用
原文地址:http://hi.baidu.com/zeyu203/item/d667ff12c7982c2df6625ccb