Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
Makefile g++ compile with -D variable from command line with default value
我正在尝试设置一个makefile,它将采用命令行参数并将其传递给带有-D标志的编译器。此外,为变量设置默认值。
例如
$: Make program FOO=12
这将与-DFOO=12
一起编译
另外,如果在命令行中没有给出FOO
,如何设置默认值? 我正在使用c ++,所以我可以做
#ifndef FOO
#define FOO 12
#endif
但是我想要一种方法在生成文件中有一个默认值。
ifeq ($(FOO),) # check if FOO is not defined
CFLAGS= -DFOO=999 # if not defined, set a default value
else
CFLAGS= -DFOO=$(FOO) # or use the value from argument
endif
重新定义的宏是一个警告,所以如果你不关心警告,只需将默认值添加到标志中,然后附加用户输入,它将覆盖默认值。
如果您不喜欢警告,请使用-U
参数。
-D FOO=1 -U FOO -D FOO=2
相关文章:
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- C++ 在编译时具有函数计算全局变量
- Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
- 可视化编译与 C++ 中的 Extern 变量
- 跨模板化函数编译的静态变量
- 在编译时为运行时设置环境变量
- 全局变量在 C++ 中是否显着提高了编译速度?
- 模板类编译问题与 typedef 变量
- constexpr 函数在编译时获取值,即使我的变量不是 constexpr
- 为什么具有静态存储持续时间的同一内联变量在包含在 VS2017 编译的两个翻译单元中时会构造和销毁两次
- C++ 编译时在两个变量之间交替
- Constexpr变量不是编译时值
- 返回实例变量的c++方法可以访问变量中的数据,但不能更改它,但在编译时不会生成错误
- C++11 - 获取编译时的所有类变量,并在没有 Boost 的情况下为它们调用方法
- C++:此代码可以编译,但引发运行时检查失败 #2 - 围绕变量周围的堆栈'num'已损坏。发生
- 分配给静态变量的局部变量;编译错误在'c'但在 C++ 中成功
- Apache Ignite v2.7:无法构建 Linux ODBC 驱动程序 - 内联变量编译错误
- 在源代码中使用环境变量(编译时间)
- 可能是的GCC错误,使用两个变量编译
- C/C++ 外部 "C" 变量编译宏