使用 make 命令编译类文件
Using the make command to compile class files
在我目前的计算机科学项目中,我不得不使用大量的类和类文件来帮助分解程序的巨大负载。但是,我想创建一个能够在不使用中间".o"步骤的情况下编译依赖项的生成文件。我已经有:
%: %.cpp
g++ -std=c++11 $< -o $@
是的,我必须使用 c++11,而不是 14 或 17。但是有没有办法做到这一点,以便我可以编写make foo.cpp bar.cpp
并让它g++ -std=c++11 foo.cpp bar.cpp -o foo
运行?
为了
做你想做的事情,你必须将所有*.cpp
文件列为foo
的依赖项,并执行make foo
(或将foo
作为Makefile中的第一个目标(来编译它。
foo: foo.cpp bar.cpp
g++ -std=c++11 $^ -o $@
$^
代表所有先决条件。
但是,为什么不想使用和中间步骤?这样做,每次任何源文件更改时,您都会重新编译并重新链接整个项目。使用*.o
可以避免这种情况:
foo: foo.o bar.o
g++ -std=c++11 $^ -o $@
%.o: %.cpp
g++ -std=c++11 $< -o $@
这样,您将避免不必要的重新编译。
(您也可以省略%.o
规则,因为 make 具有默认已定义的内置规则(
相关文章:
- 使用 Makefile 中的头文件编译 Pybind (不使用 cmake)
- 如何使用命令提示符、记事本和 MinGW 使用主文件、头文件和实现文件编译C++程序?
- 无论如何可以将webm / mp4文件编译/记忆为.exe程序吗?(C++)
- 从生成文件编译错误:"Unable to open output file" ..."No such file or directory"
- 如何使用 GLFW 预编译的二进制文件编译 Visual Studio 2019 发布版本
- Arduino IDE中自定义库类的.h文件编译错误的原因是什么
- makefile和错误将与大型项目分开的文件编译
- 如何使用生成文件编译具有多个目录的 c++ 项目
- 我可以将Visual Studio 2015头文件编译成dll并在VS2013中使用它吗?
- 使用Bazel将C 文件编译为python.h
- 使用 .a 文件编译简单的C++文件
- OpenCV 3.2 文件编译
- 如何从多个 cpp 文件编译 WebAssembly
- 从多个文件编译可以"undefined reference"
- 使用静态依赖性为共享二进制文件编译语法需要更加清晰
- 将Gsoap Src文件编译到我的项目中
- 如何用多个文件编译make下的dlib
- 字段的类型不完整,从多个文件编译
- 强制将特定文件编译为Objective-C/文件类型,但将整个项目编译为Objective C++
- OpenGLES 标头(包括 Availability.h)可防止 CPP 文件编译