如何使用 GNU Make 从同一源代码编译程序的第二个版本
How to compile a second version of a program from the same source using GNU Make?
我想从同一来源编译我的程序的第二个版本(使用 #ifdef TESTS
等),即:
prog.cpp --(compile)--> prog-tests
我可以通过以下Makefile
规则来实现这一点:
prog-tests: prog.cpp
$(LINK.cpp) -DTESTS $^ $(LOADLIBES) $(LDLIBS) -o $@
或
prog-tests: CPPFLAGS += -DTESTS
prog-tests: prog.cpp
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@
首选此版本中的哪个版本/最佳实践?我想尽可能多地使用隐式规则。
(我正在使用GNU Make 4.0。
如果要
使用不同的编译器标志将同一源文件编译为目标文件,则必须将这些目标文件生成到不同的目录中。
但是,命令行会跳过目标文件的创建,因为它们在一个步骤中进行编译和链接(不会生成任何对象文件)。因此,在此处添加额外编译器标志的方式几乎没有区别。
相关文章:
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 难以理解某些人解决IOI问题的源代码
- 使用g++编译hdf5源代码
- 如何使用C++读取另一个程序中的源代码输出
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- C++出现控制台错误.我无法识别源代码的问题
- Qt Quick,如何更改 Ui 源代码?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 从macOS Catalina上的源代码编译LLVM(如何解决未找到"stdio.h")
- 如何使用QT创建器获取网页源代码?
- 从源代码构建 gRPC C++
- 如何使用我构建的库,而不会从源代码出错,但不为我自己的项目编译?
- 如何在使用 LLVM 编译时获取部分源代码的二进制代码
- 如何在源代码中包含外部库的头文件?
- 无法在 dev-c++ 上编译程序?
- 如何查找 torch.bmm 的 c++ 源代码 pytorch.
- 如何使用 GNU Make 从同一源代码编译程序的第二个版本