编辑:我现在知道这是C语言中的标准做法,但是我需要知道它是如何实现的。我可以举一个实现这个的makefile的例子吗?例如,如何指示该exe应该以递增的整数后缀命名?-DFOO:#往哪里去?
就像我说的那样,我正在阅读GNU make文档,但是它很厚。
〜编辑
我认为我想做的事是可能的,但文档...很重。
https://www.gnu.org/software/make/manual/make.html#toc_Rules
我需要能够从源代码编译多个可执行文件,并且每个可执行文件在标头中使用不同的常量定义。认为...
.exe1 needs to have
...#DEFINE FOO 2
.exe2 needs to have
...#DEFINE FOO 4
.exe3 needs to have
...#DEFINE FOO 16
为了澄清,我的程序具有以下头文件:
#define DATASIZE 16777216 //16MB
#define NUM_PROCESS 10
#define NUM_COMPS 1
我编写了这个bash脚本,用于评估代码的性能:
#!/bin/bash
for i in {1..5};
do
./usr/bin/time -p exe$1 >> exe_output$1 &2>1
done
如您所见,这是通过以下方式执行的:
for i in {1..n};
do
./run.sh $i
done
其中n是我已编译的可执行文件的数量。
现在,为了更改每个exe中的定义(以及性能),我必须打开源文件并手动进行更改。我想编译12到16个不同的可执行文件,而手工完成这一切都变得很乏味,因此我正在寻找一种以编程方式进行处理的方法。
exe1: source.c
$(CC) -DFOO=2 ...
exe2: source.c
$(CC) -DFOO=4 ...
exe3: source.c
$(CC) -DFOO=16 ...
依此类推,...
其余的编译选项在哪里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句