`
隐形的翅膀
  • 浏览: 497529 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

采用Makefile编译C++ 多个文件

 
阅读更多
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
分享到:
评论

相关推荐

    Makefile万能通用版(C++和C混合编译也适用)

    2. 编译源代码:Makefile编译-src目录下的所有C和C++源代码,生成目标文件exe。 3. 清理中间文件:Makefile清理所有生成的中间文件和可执行文件。 Makefile的混合编译 Makefile支持C和C++混合编译。要实现混合编译...

    万能通用性Makefile/C++/C全自动编译实例

    Makefile编写实例: 1.前提是需要安装MInGw——c/c++编译器,不懂的可以私信我哈; 2.本程序是利用bat脚本直接运行Makefile,非常方便;... 3.makefile为采用通用性规则编写,自动搜索所在目录...4.适应于编译C++/C代码。

    linux makefile 编写 规则 编译多个文件

    本篇将详细介绍如何在`Makefile`中编写规则来编译多个文件。 ### 1. Makefile基本结构 `Makefile`通常包含目标(target)、依赖文件(dependency)和命令(command)。一个简单的规则示例: ```makefile target: ...

    Linux makefile 文件的使用例子,用Makefile编译多个文件

    在Linux环境中,`Makefile`是一个非常重要的工具,它用于自动化构建、编译和链接C++项目,尤其是当项目包含多个源文件时。这个例子展示了如何编写和使用`Makefile`来管理C++项目,其中可能包括类和其他复杂的结构。 ...

    LINUX C++下多个Makefile编写方法

    在Linux环境下进行C++开发时,管理多个源文件和库可能会变得复杂,此时,使用Makefile就显得尤为重要。Makefile是构建程序的自动化工具,它定义了编译、链接等步骤的规则。在这个主题中,我们将深入探讨如何在C++...

    makefile编译体系

    【标题】:深入理解Makefile编译体系 Makefile是软件构建过程中不可或缺的一部分,它为自动化编译、链接等步骤提供了便利。无论是在Linux、MacOS还是iOS开发中,掌握Makefile的使用都能极大地提高开发效率。让我们...

    makefile基础与实战编译大型C-C++项目(linux).zip

    1动手编写第一个makefile编译c++多文件项目 2g++分步编译演示从源码到执行程序的四步 3makefile运行流程分析并使用变量改写项目 4makefile自动推导目标代码配置和伪目标clean清理 5使用make编译动态链接库并编写测试...

    GCC和MakeFile入门代码二 DLL编译

    DLL是一种可重用的代码模块,可以在多个应用程序之间共享。在Windows平台上,DLL可以提高性能,减少内存占用,因为它只在内存中加载一次。 `readme.txt`通常会包含项目的说明、构建指南或者开发者需要注意的事项。...

    Makefile标准模板,清晰明了,支持c和c++混合编程

    在IT行业中,构建和编译...这个`Makefile`模板能够根据源文件的变化自动编译和链接项目,同时支持C和C++的混合编程。通过理解并应用这样的`Makefile`,开发者可以在Linux环境下有效地管理他们的项目,提高开发效率。

    arm 编译多文件C++静态库 Makefile

    在嵌入式开发中,尤其是针对ARM架构的设备,我们经常需要编译C++源代码为静态库,以便在目标平台上运行。`arm-none-eabi-g++` 和 `arm-none-eabi-gcc-ar` 是GNU工具链中的关键部分,它们分别用于C++编译和静态库的...

    通用makefile编译工程文件

    在编程世界中,`Makefile` 是一个非常重要的工具,特别是在C/C++等需要编译的语言中,它用于自动化构建过程。通用 `Makefile` 的目的是为了简化和标准化项目的构建流程,使得无论项目规模大小,都可以高效地进行编译...

    c和c++混合编译的Makefile文件

    在C和C++混合编程的项目中,使用Makefile文件是非常常见的做法,它能帮助我们自动化构建过程,节省时间并确保编译的正确性。Makefile是一个文本文件,包含了编译、链接等步骤的指令,使得编译器知道如何从源代码生成...

    Makefile基础与实战编译大型C-C++项目

    动手编写第一个Makefile编译C++多文件项目 - **Makefile结构**: - 规定目标(目标文件、可执行文件等)。 - 指定依赖关系。 - 定义命令来编译或链接目标文件。 - **实践步骤**: - 创建简单的C++源文件。 - ...

    arm编译多文件Makefile

    针对"arm编译多文件Makefile"的主题,我们将深入探讨如何配置和使用Makefile来编译C++17标准的多文件项目,以及如何生成.bin文件。 首先,`Makefile`是Make程序的配置文件,用于定义构建工程的一系列规则。在ARM...

    Ubuntu下最简单的Cmake编译多个C和C++工程的例子

    本教程将通过一个名为"sample_multiproject"的示例项目,详细讲解如何使用CMake在Ubuntu环境下编译多个C和C++工程。 首先,让我们了解CMake的基本结构。每个CMake项目都始于一个名为`CMakeLists.txt`的文件,这个...

    opencv下一键编译程序的Makefile

    有多个头文件和传文件的opencv小伙伴可以使用本...只需要将所有的c/c++文件和头文件放在同一个文件下makefile就可以自己去找依赖,前提是opencv安装成功而且配置好环境,如果没配置好文件的请参考我的另外一个文章.

    一个makefile 标准工程

    为了提高效率,可以使用`-j`选项并行编译多个目标。 优化Makefile主要考虑减少不必要的编译和提高构建速度,如合理利用缓存,减少重复的编译步骤,或者通过条件判断只编译修改过的文件。 总结,Makefile是软件开发...

    编译多个可执行程序,需链接动态库静态库,且需先编译库,并且库与库之间存在依赖关系的makefile

    本示例演示了编译多个可执行程序,需链接动态库,静态库,且需先编译库,并且库与库之间存在依赖关系的makefile的编写方式,makefile文件内部有详细的注释,目录下也有介绍文档,请务必按照里面的步骤操作,保证可以...

    SUSE下编译C++扩展模块

    总之,编译C++扩展模块在SUSE中涉及多个步骤,包括配置环境、编写或修改源代码、创建Makefile、编译、链接、调试以及处理可能遇到的问题。熟练掌握这些技能对任何Linux开发人员都是至关重要的。

    多目录makefile

    "多目录Makefile"是处理包含多个子目录(如源码、库、测试等)的项目时,管理整个项目构建的一种方式。这种结构有助于代码组织和模块化,使得大型项目更容易维护。 1. **多目录结构**:在项目中,将代码按功能或...

Global site tag (gtag.js) - Google Analytics