具有多个主要功能的循环生成文件
Looping makefile with multiple main functions
我正在尝试编写一个可以为每个主函数创建一个可执行文件的makefile。
我有一个文件列表:main1.cpp
、main2.cpp
和 main3.cpp
。它们都包含一个int main()
函数。显然,我无法将它们构建到一个可执行文件中,这不是本文的目标,那么如何将每个可执行文件构建到自己的可执行文件中呢?这是一个解决方案:
main1: main1.cpp
$(CC) -o $@ $^
main2: main2.cpp
$(CC) -o $@ $^
main3: main3.cpp
$(CC) -o $@ $^
但必须有更好的方法来做到这一点。是否有某种类型的循环功能可以使此过程更容易?喜欢 for 循环?
wildcard
、patsubst
和静态模式规则的混合,加上用于C++编译和链接的标准 make 变量:
SRCS := $(wildcard main*.cpp)
EXES := $(patsubst %.cpp,%,$(SRCS))
$(EXES): %: %.cpp
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS)
但是,由于make已经知道如何制作所有这些,您也可以摆脱Makefile,只需键入make main1
...
虽然它不是一个非常复杂的生成文件,但您的解决方案适用于三个简单的程序。 您可以使其更加通用,并支持使用"all"目标同时构建所有三个目标。
all: main1 main2 main3
main1: main1.cpp
$(CC) -o $@ $^
main2: main2.cpp
$(CC) -o $@ $^
main3: main3.cpp
$(CC) -o $@ $^
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 使用fstream对txt文件中的数字进行循环
- 视觉 如何循环访问C++中遵循类似格式的多个.txt文件?
- C/C++:socket() 创建在循环中失败,打开的文件太多
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 虽然循环不读取整个 ifstream 文件
- 如何在头文件中声明类模板(由于循环依赖关系)
- 如何使用循环逐个读取C++中的多个文件
- 是否可以在文本文件中找到最长单词的长度,并在同一个文本文件中读取,只需 1 个 while 循环?
- 如何循环 n 次,在 xml 文件中每个循环一个级别
- 如何通过一个循环将多个文件的内容分配给不同的类属性?
- 从文件 C++ 读取时的无限循环
- 从文件读取,并循环访问文件以写入数组
- 从文件导入数据时遇到问题.我有一个没完没了的循环
- C++:从文件中读取x y数据会产生无限循环吗
- 如何在不循环的情况下使用getline读取文件
- 是否可以在一个循环中写入多个二进制文件
- 对于循环文件,数据正在重复并跳过其他行c++
- 循环文件映射会降低性能
- 磁盘IO循环文件写入问题