摘要: Makefile中命令前的@和-符号如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @ 通常make执行的命令如果出错(该命令的退出状态非0)就立刻终止,不再执行后续命令,但如果命令前面加了-号,即使这条命令出错,m 阅读全文
posted @ 2018-01-16 18:32 Key_Ky 阅读(683) 评论(0) 推荐(0) 编辑
摘要: 比方说你在makefile里定义了一个变量,内容是一堆 .c 文件的的名字,如 SRC = aaa.c bbb.c my.c his.c你可以用 patsubst 根据某种模式,将这些名字改成另外的,比如将这些 .c 文件的名字变成 .s 为后缀的名字: NEW = $(patsubst "%.c" 阅读全文
posted @ 2018-01-16 18:29 Key_Ky 阅读(829) 评论(0) 推荐(0) 编辑
摘要: $@ 代表目标文件,$^ 代表所有的依赖文件,$< 代表第一个依赖文件。 # 这是简化后的Makefilemain:main.o mytool1.o mytool2.o gcc -o $@ $^ main是目标文件,main.o mytool1.o mytool2.o是所有依赖文件。 阅读全文
posted @ 2018-01-16 18:20 Key_Ky 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 在看到MXNet中的Makefile发现LDFLAG里面的是-pthread。 转自:https://www.cnblogs.com/rex-tech/p/3583756.html 编译参数中-pthread以及-lpthread的区别一般情况下,我们在链接一个(文件名为libxxx.so或libx 阅读全文
posted @ 2018-01-16 18:05 Key_Ky 阅读(1100) 评论(0) 推荐(0) 编辑
摘要: --whole-archive选项解决的是编译中常遇到的问题。在代码中定义的符号(如函数名)还未使用到之前,链接器并不会把它加入到连接表中。 如下面这个例子: a.cpp: void func(){printf("I am in a.cpp.\n");} main.cpp: extern void 阅读全文
posted @ 2018-01-16 17:59 Key_Ky 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: 最近看MXNet的源码,其中c_api.h中发现遇到__declspec(dllexport) 和 __declspec(dllimport)。 __declspec(dllexport)用于导出符号,也就是定义该函数的dll;__declspec(dllimport)用于导入,也就是使用该函数。因 阅读全文
posted @ 2018-01-16 17:48 Key_Ky 阅读(298) 评论(0) 推荐(0) 编辑