首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个CFLAGS选项的二进制

每个CFLAGS选项的二进制
EN

Stack Overflow用户
提问于 2014-05-27 04:16:10
回答 1查看 188关注 0票数 1

我需要从同一组源代码和标题中生成七个二进制文件。所有代码都必须用相同的CFLAGS编译。在我的问题中,CFLAGS有7种选择

  1. CFLAGS=-O0
  2. CFLAGS=-O1
  3. CFLAGS=-O1 -no-vec
  4. CFLAGS=-O2
  5. CFLAGS=-O2 -no-vec
  6. CFLAGS=-O3
  7. CFLAGS=-O3 -no-vec

使用make编译所有源代码的最短和最合适的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2014-05-27 05:32:13

从命令行重写变量CFLAGS?

我建议您在命令行中使用凌驾变量CFLAGS。

对于这种特殊情况,一组shell命令如下所示:

代码语言:javascript
复制
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变量来解决。

代码语言:javascript
复制
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;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23880973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档