1. 假设我们下面几个c++文件
wherewhen.h wherewhen.c
countdown.h countdown.c 包含了math.h, 需要连接库文件
main.c 主函数, main.c 包含了两个头文件 wherewhen.h and countdown.h
第一种编译方法
g++ -Wall -g wherewhen.c countdown.c main.c -lm -o myprogram
生成可执行文件myprogram
第二中编译方法, 分别编译各个文件,
g++ -Wall -g -c wherewhen.c
g++ -Wall -g -c countdown.c
g++ -Wall -g -c main.c
g++ -g wherewhen.o countdown.o main.o -lm -o myprogram
如果我改变了wherewhen.c, 只需要做下面两步编译
g++ -Wall -g -c wherewhen.c
g++ -g wherewhen.o countdown.o main.o -lm -o myprogram
2. 采用Makefile
类似上面,有三个文件Student.h,Student.cpp and main.cpp, main.cpp 包含头文件Student.h
CC = g++
CFLAGS = -Wall -g
LDFLAGS = -lm
all: clean Student.o main.o myprogram
Student.o : Student.h
${CC} ${CFLAGS} -c Student.cpp
main.o : Student.h
${CC} ${CFLAGS} -c main.cpp
myprogram : Student.o main.o
${CC} ${CFLAGS} Student.o main.o ${LDFLAGS} -o myprogram
clean:
rm -rf *.o
rm -rf myprogram
then run make
分享到:
相关推荐
2. 编译源代码:Makefile编译-src目录下的所有C和C++源代码,生成目标文件exe。 3. 清理中间文件:Makefile清理所有生成的中间文件和可执行文件。 Makefile的混合编译 Makefile支持C和C++混合编译。要实现混合编译...
Makefile编写实例: 1.前提是需要安装MInGw——c/c++编译器,不懂的可以私信我哈; 2.本程序是利用bat脚本直接运行Makefile,非常方便;... 3.makefile为采用通用性规则编写,自动搜索所在目录...4.适应于编译C++/C代码。
本篇将详细介绍如何在`Makefile`中编写规则来编译多个文件。 ### 1. Makefile基本结构 `Makefile`通常包含目标(target)、依赖文件(dependency)和命令(command)。一个简单的规则示例: ```makefile target: ...
在Linux环境中,`Makefile`是一个非常重要的工具,它用于自动化构建、编译和链接C++项目,尤其是当项目包含多个源文件时。这个例子展示了如何编写和使用`Makefile`来管理C++项目,其中可能包括类和其他复杂的结构。 ...
在Linux环境下进行C++开发时,管理多个源文件和库可能会变得复杂,此时,使用Makefile就显得尤为重要。Makefile是构建程序的自动化工具,它定义了编译、链接等步骤的规则。在这个主题中,我们将深入探讨如何在C++...
【标题】:深入理解Makefile编译体系 Makefile是软件构建过程中不可或缺的一部分,它为自动化编译、链接等步骤提供了便利。无论是在Linux、MacOS还是iOS开发中,掌握Makefile的使用都能极大地提高开发效率。让我们...
1动手编写第一个makefile编译c++多文件项目 2g++分步编译演示从源码到执行程序的四步 3makefile运行流程分析并使用变量改写项目 4makefile自动推导目标代码配置和伪目标clean清理 5使用make编译动态链接库并编写测试...
DLL是一种可重用的代码模块,可以在多个应用程序之间共享。在Windows平台上,DLL可以提高性能,减少内存占用,因为它只在内存中加载一次。 `readme.txt`通常会包含项目的说明、构建指南或者开发者需要注意的事项。...
在IT行业中,构建和编译...这个`Makefile`模板能够根据源文件的变化自动编译和链接项目,同时支持C和C++的混合编程。通过理解并应用这样的`Makefile`,开发者可以在Linux环境下有效地管理他们的项目,提高开发效率。
在嵌入式开发中,尤其是针对ARM架构的设备,我们经常需要编译C++源代码为静态库,以便在目标平台上运行。`arm-none-eabi-g++` 和 `arm-none-eabi-gcc-ar` 是GNU工具链中的关键部分,它们分别用于C++编译和静态库的...
在编程世界中,`Makefile` 是一个非常重要的工具,特别是在C/C++等需要编译的语言中,它用于自动化构建过程。通用 `Makefile` 的目的是为了简化和标准化项目的构建流程,使得无论项目规模大小,都可以高效地进行编译...
在C和C++混合编程的项目中,使用Makefile文件是非常常见的做法,它能帮助我们自动化构建过程,节省时间并确保编译的正确性。Makefile是一个文本文件,包含了编译、链接等步骤的指令,使得编译器知道如何从源代码生成...
动手编写第一个Makefile编译C++多文件项目 - **Makefile结构**: - 规定目标(目标文件、可执行文件等)。 - 指定依赖关系。 - 定义命令来编译或链接目标文件。 - **实践步骤**: - 创建简单的C++源文件。 - ...
针对"arm编译多文件Makefile"的主题,我们将深入探讨如何配置和使用Makefile来编译C++17标准的多文件项目,以及如何生成.bin文件。 首先,`Makefile`是Make程序的配置文件,用于定义构建工程的一系列规则。在ARM...
本教程将通过一个名为"sample_multiproject"的示例项目,详细讲解如何使用CMake在Ubuntu环境下编译多个C和C++工程。 首先,让我们了解CMake的基本结构。每个CMake项目都始于一个名为`CMakeLists.txt`的文件,这个...
有多个头文件和传文件的opencv小伙伴可以使用本...只需要将所有的c/c++文件和头文件放在同一个文件下makefile就可以自己去找依赖,前提是opencv安装成功而且配置好环境,如果没配置好文件的请参考我的另外一个文章.
为了提高效率,可以使用`-j`选项并行编译多个目标。 优化Makefile主要考虑减少不必要的编译和提高构建速度,如合理利用缓存,减少重复的编译步骤,或者通过条件判断只编译修改过的文件。 总结,Makefile是软件开发...
本示例演示了编译多个可执行程序,需链接动态库,静态库,且需先编译库,并且库与库之间存在依赖关系的makefile的编写方式,makefile文件内部有详细的注释,目录下也有介绍文档,请务必按照里面的步骤操作,保证可以...
总之,编译C++扩展模块在SUSE中涉及多个步骤,包括配置环境、编写或修改源代码、创建Makefile、编译、链接、调试以及处理可能遇到的问题。熟练掌握这些技能对任何Linux开发人员都是至关重要的。
"多目录Makefile"是处理包含多个子目录(如源码、库、测试等)的项目时,管理整个项目构建的一种方式。这种结构有助于代码组织和模块化,使得大型项目更容易维护。 1. **多目录结构**:在项目中,将代码按功能或...