我需要从同一组源代码和标题中生成七个二进制文件。所有代码都必须用相同的CFLAGS编译。在我的问题中,CFLAGS有7种选择
CFLAGS=-O0CFLAGS=-O1CFLAGS=-O1 -no-vecCFLAGS=-O2CFLAGS=-O2 -no-vecCFLAGS=-O3CFLAGS=-O3 -no-vec使用make编译所有源代码的最短和最合适的方法是什么?
发布于 2014-05-27 05:32:13
从命令行重写变量CFLAGS?
我建议您在命令行中使用凌驾变量CFLAGS。
对于这种特殊情况,一组shell命令如下所示:
make CFLAGS=-O0; mv binary binary1; make clean;
make CFLAGS=-O1; mv binary binary2; make clean;
make CFLAGS=-O1\ -no-vec; mv binary binary3; make clean;
make CFLAGS=-O2; mv binary binary4; make clean;
make CFLAGS=-O2\ -no-vec; mv binary binary5; make clean;
make CFLAGS=-O3; mv binary binary6; make clean;
make CFLAGS=-O3\ -no-vec; mv binary binary7; make clean;这将允许您使makefile保持简单,就像使用一个CFLAGS值的情况一样。但是这种方法有一个问题。对于创建七个二进制文件,每次调用make之后,都应该移动新创建的二进制文件。这可以通过为特定目标的名称引入TARGET变量来解决。
make CFLAGS=-O0 TARGET=binary1; make clean;
make CFLAGS=-O1 TARGET=binary2; make clean;
make CFLAGS=-O1\ -no-vec TARGET=binary3; make clean;
make CFLAGS=-O2 TARGET=binary4; make clean;
make CFLAGS=-O2\ -no-vec TARGET=binary5; make clean;
make CFLAGS=-O3 TARGET=binary6; make clean;
make CFLAGS=-O3\ -no-vec TARGET=binary7; make clean;https://stackoverflow.com/questions/23880973
复制相似问题