Makefile之嵌套执行make】的更多相关文章

1.在Makefile中 一般使用一个总控Makefile来指明文件的编译规则 如: subsystem: cd subdir && $(MAKE) 其等价于 subsystem: $(MAKE)  -C subdir 这两者表达相同的意思:先进入“subdir”目录中,然后执行make命令: 2.一般使用export来到处变量为环境变量,以便于在下级的Makefile文件中能够使用这个变量: 使用unexport不导出变量为环境变量 3.存在两个变量无论是否export,这两个变量都会导…
嵌套执行make 在一些大的工程中,我们会把我们不同模块或是不同功能的源文件放在不同的目录中,我们可以在每个目录中都书写一个该目录的Makefile,这有利于让我们的Makefile变得更加地简洁,而不至于把所有的东西全部写在一个Makefile中,这样会很难维护我们的Makefile,这个技术对于我们模块编译和分段编译有着非常大的好处. 例如,我们有一个子目录叫subdir,这个目录下有个Makefile文件,来指明了这个目录下文件的编译规则.那么我们总控的Makefile可以这样书写: su…
首先说说本次嵌套执行makefile文件的目的:只需make根目录下的makefile文件,即可编译所有c文件,包括子目录下的. 意义:自动化编译行为,以后编译自己的c文件时可把这些makefile文件直接复制到相应目录即可方便编译出所有文件.这些makefile文件是通用的,只需根据自己的工程情况改动少许内容即可.下面会说. 总体思路是:把目标文件放在debug文件夹下的obj目录下,把最终的二进制文件放在debug文件夹下的bin目录下;如何递归编译所有除了debug目录下的makefile…
首先说说本次嵌套执行makefile文件的目的:只需make根目录下的makefile文件,即可编译所有c文件,包括子目录下的. 意义:自动化编译行为,以后编译自己的c文件时可把这些makefile文件直接复制到相应目录即可方便编译出所有文件.这些makefile文件是通用的,只需根据自己的工程情况改动少许内容即可.下面会说. 总体思路是:把目标文件放在debug文件夹下的obj目录下,把最终的二进制文件放在debug文件夹下的bin目录下;如何递归编译所有除了debug目录下的makefile…
条件语句可以根据一个变量的值来控制make执行或者忽略Makefile的特定部分.条件语句可以是两个不同变量.或者变量和常量值的比较.要注意的是:条件语句只能用于控制make实际执行的makefile文件部分,它不能控制规则的shell命令执行过程.Makefile中使用条件控制可以做到处理的灵活性和高效性. 7.1      一个例子 首先我们来看一个使用条件判断的Makefile例子:对变量“CC”进行判断,其值如果是“gcc”那么在程序连接时使用库“libgnu.so”或者“libgnu.…
函数嵌套的执行顺序,从上往下,一层一层的执行重点注意的是函数和内存的交互原理 NMAE = def yangtuo(): # 2 将整个函数放入内存编译,但是不执行 name = "yangtuo" # print(name) # def yang(): # 3 将整个函数放入内存编译,但是不执行 name = "yang" # print(name) # def tuo(): # 4 将整个函数放入内存编译,但是不执行 name = "tuo"…
条件执行即,通过变量的值,来控制make的执行和忽略. 条件执行只能控制makefile的make语法部分,不能控制shell部分 1.一个例子 - libs_for_gcc = -lgnu normal_libs = -- foo: $(objects) ifeq ($(CC),gcc) $(CC) -o foo $(objects) $(libs_for_gcc) else $(CC) -o foo $(objects) $(normal_libs) endif -- 2.ifeq,ifne…
今天做项目时遇到一个for循环的嵌套问题,一个循环次数多,一个次数少,怎样设计效率较高. 想起以前笔试时遇到过这个问题,当时由于时间仓促,没有细想,今天在实际代码中遇到这么问题,于是动笔算了下. 设两个循环次数分别为m.n,m为一个很大的数,n为一个较小的数.假设在m循环中第i(0<i<=m)个,n循环中第j(0<j<=n)个退出 则大循环套小循环所需的运算次数y1=(i-1)*n+j; 小循环套大循环所需的运算次数y2=(j-1)*m+i; 令f(i,j)=y1-y2=(n-1)…
expect是 #!/bin/bashpasswd='123456'/usr/bin/expect <<EOFset time 30spawn ssh root@192.168.76.10expect { "*yes/no" { send "yes\r"; exp_continue} "*password:" {send "$passwd\r"} }expect "*#"send "c…
http://blog.csdn.net/leexiang_han/article/details/9274229   学习了几天的makefile的嵌套调用编写也有一些心得,先声明,我也是初学者写文章只是为了更好的交流,也希望避免其他刚入Linux编程大门的童鞋少走弯路.以下都是经过我多次测试并跑成功的,如有偏差还请见谅与指正. 我有两个练习例子: ①先来说说第一个例子:生成一个可执行文件edit top dir(根目录)下有源文件main.c.makefile(主).文件夹sub1.文件夹s…