1、$@ $^ 含义
例:
main:main.omytool1.o mytool2.o
gcc-o $@ $^
$@ 表示目标文件,如 main,
$^表示依赖文件,如main.o mytool1.o mytool2.o。
2、: 含义
例:
name:name1 name2
command
:表示依次跳转,执行相应标签或目标,比如上例,先跳转到name1执行;之后跳转到到name2执行;然后执行剩下的command。
3、-L -I 含义
例:
-L$(LIBDIR)
-I$(INCLUDES)
-L 表示将指定路径下的库文件(.a 或者 .so)链接进来,
-I 表示将指定路径下的文件include进来。
4、objdump -p xxxx.a
查看静态库xxxx.a的版本信息,32位还是64位。通常情况下,
/usr/bin/ld:skipping incompatible xxxx.a的报错即为版本不兼容问题。
注:file ./xxx/xx.so 查看动态库信息