我个人的一个Makefile模版(C++、C)

GNU make/Makefile 简明实用教程 GNU make/Makefile 简明实用教程 目录: 1. 简介 2. 示例项目 3. 为什么使用make 4. 使用变量 5. 模式规则 6. 使用函数 7. 总结 1. 简介 make(GNU make) 是一个项目构建工具,即方便地编译、链接多个源代码文件,自动决定哪些源文件需要重新编译,从而高效地构建自己地项目。本教程使用最广泛使用make的.c文件为例,但实际上make的使用并不限于 C 语言。 本教程目标: 根据多个源文件(示例为.c、.h文件),编译成多个中间文件(示例为.o文件) 阅读详情
.PHONY: all clean
CC=g++
BIN=target
DEPF=main.dep
SRC_FILE_TYPE= .c .cpp
H_FILE_TYPE= .h .hpp
LOCAL_SRC_PATH= .
LOCAL_INCLUDE_PATH= .
LOCAL_LIBRARY_PATH= .
LIBS=
D_FINE_SIGN=
DEFINE_FLAGS=$(addprefix -D, $(D_FINE_SIGN))
CFLAGS= $(addprefix -I, $(LOCAL_INCLUDE_PATH)) -g -Wall
CXXFLAGS= $(addprefix -I, $(LOCAL_INCLUDE_PATH)) -g -Wall
LDFLAGS= $(addprefix -L, $(LOCAL_LIBRARY_PATH))
GENERALLY_ALL_SRC_FILE=$(foreach n, $(LOCAL_SRC_PATH), $(foreach m, $(SRC_FILE_TYPE), $(n)/*$(m)))
SUBST_ALL_SRC_FILE=$(subst //, /, $(GENERALLY_ALL_SRC_FILE))
ALL_SRC_FILE=$(filter-out $(subst ., %/*.,  $(SRC_FILE_TYPE)),  $(shell echo $(SUBST_ALL_SRC_FILE)))
GENERALLY_H_FILE=$(foreach n, $(LOCAL_INCLUDE_PATH), $(foreach m, $(H_FILE_TYPE), $(n)/*$(m)))
SUBST_H_FILE=$(subst //, /, $(GENERALLY_H_FILE))
H_FILE=$(filter-out $(subst ., %/*., $(H_FILE_TYPE)), $(shell echo $(SUBST_H_FILE)))

OBJ=$(foreach n, $(subst .,%., $(SRC_FILE_TYPE)), $(filter %.o, $(patsubst $(n),%.o, $(ALL_SRC_FILE))))

all:$(DEPF) $(BIN)
$(DEPF):$(ALL_SRC_FILE) $(H_FILE)
	@cat /dev/null > $@
	$(CC) $(CFLAGS) $(DEFINE_FLAGS) $(ALL_SRC_FILE) -MM >>  $@
-include $(DEPF)
$(BIN):$(OBJ)
	$(CC) $(LDFLAGS) $(LIBS) $^ -o $@
clean:
	rm -rf $(BIN) $(OBJ) $(DEPF)


其实上面的模板 根据实际情况更改一下 编译器、指定一下 -std=参数、添加一下必要的头文件路径、库路径,指定一下库链接名称即可。
当然还要根据世纪情况,添加库编译相关。可以根据实际情况调整一下即可。



 
使用gcc,Dev-c++,Makefile编译C程序 目录 (一)在Ubuntu系统下用C语言编写一个简单的输出helloworld的程序,并编译,运行。 ​ (二)编写主程序文件main.c和一个子程序文件sub1.c。要求:子程序sub1.c包含一个算术运算函数floatx2x(inta,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main.c,定义并赋值两整型变量,然后调用函数x2x,将x2x的返回结果printf出来。 (1)在Ubuntu系统用gcc命令方式编译主程序main.c并运行; ... 阅读详情

相关推荐

从零开始理解一个复杂的 C++/CUDA 项目 Makefile

这是一个融合了 C++、CUDA(GPU 编程)、C 语言的复杂项目,可能用于视频处理、AI 推理(如 RetinaFace、SCRFD、TensorRT) 等高性能场景。今天,我们就来逐行解析一个真实项目中的 Makefile,带你揭开构建系统的神秘面纱!你是否好奇:“这么多 .cpp、.cu 文件,是怎么一步步变成可执行程序的?你是否曾经面对一个庞大的 C++ 项目,看到 Makefile 就头大?🌟 总结:Makefile 的构建流程。

m0_37603703的博客 329

makefile中addprefix函数

$(addprefix PREFIX,NAMES…) addprefix 是makefile中的函数,是添加前缀的函数 例如:$(addprefix src/,foo bar) 返回值为“src/foo src/bar”. 所以上面的意思是为dirver_dirs变量添加前缀,$(DRIVERS_DIR)/

null 5538

ESP32搭配FT6236触摸屏:从芯片手册到完整I2C驱动代码的保姆级解析

本文详细解析了ESP32搭配FT6236触摸屏的I2C驱动开发过程,从芯片手册解读到完整代码实现。通过硬件架构分析、寄存器配置、I2C通信封装及触摸数据处理等步骤,提供了一套完整的驱动解决方案,帮助开发者快速掌握ESP32与触摸屏的交互技术。

weixin_29174385的博客 291

Makefile快速入门

Makefile快速入门1 什么是 Makefile2 命名规则3 工作原理4 变量5 模式匹配6 函数伪文件 .PHONY 1 什么是 Makefile 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,Makefile 文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 Makefile 文件就像一个 Shell 脚本一样,也可以执行操作系统的命令。 Makefile 带来的好处就是“自动化编译” ,一旦

catkin_ws的博客 580

【可不卸载重装】VS2019新建项目里没有CUDA选项

问题:VS2019 新建项目里没有CUDA选项,vs也属性没有cuda。这是因为你在Visual Studio 2019安装之前,先安装了CUDA Toolkit。

qq_62844901的博客 1318

GPT大模型在数学建模中的实战应用:从思路启发到代码生成

数学建模是将现实问题抽象为数学问题并求解的核心方法,其关键在于通过合理的假设与简化,构建可计算的数学模型。传统建模依赖MATLAB等工具进行推演试错,而大语言模型的出现革新了这一范式。GPT等模型通过理解自然语言、辅助逻辑推理与代码生成,能有效提升建模效率与质量,在问题解析、模型构建、算法实现等环节提供关键支持。本文聚焦GPT在数学建模中的具体应用,涵盖赛题解读、模型推导、代码生成与结果分析,并结合实战案例,探讨如何将其作为“副驾驶”融入建模全流程,实现人机协同的智能化建模。

weixin_29061465的博客 324

addprefix函数

函数名称:加前缀函数—addprefix。 函数功能:为“NAMES…”中的每一个文件名添加前缀“PREFIX”。参数“NAMES…”是空格分割的文件名序列,将“SUFFIX”添加到此序列的每一个文件名之前。 返回值:以单空格分割的添加了前缀“PREFIX”的文件名序列。 函数说明: 示例:   $(addprefix src/,foo bar)   返回值为“src/foo sr

欧阳海宾 5686

CANoe/CAPL ,远程邮件通知

CANoe/CAPL ,远程邮件通知

蚂蚁小兵 3035

Makefile模板

具体Makefile语法就不多说了,请看源码就明白了 ######################configure################## # OS=Windows,Linux,Android # ARCH=x86,x86_64,arm,aarch64 # CC # CXX # CPPFLAGS += $(addprefix -D, $(DEFINES)) # CPPFLAGS +=...

HW的博客 1503

【学习系列】SAP RAP 17:RAP应用部署集成至Fiori Launchpad 【S4HC Public Edition】

本文详细介绍了在SAP S/4HANA Cloud环境中部署RAP应用集成到Fiori Launchpad的两种方法:使用BAS(SAP Business Application Studio)和VSCode。主要步骤包括:1)在BTP中配置Destination连接ES环境;2)设置信任关系;3)创建BAS开发空间;4)通过Fiori应用生成器部署RAP应用;5)创建IAM App、Business Catalog和Business Role;6)配置Launchpad Space和Pages。文章还提供

DeveloperMrMeng的博客 959

智能合约监控告警:提示工程架构师用AI Prompt实现精准预警

当AI大模型(尤其是代码理解模型如CodeLlama、GPT-4 Code)与区块链数据结合,智能合约监控迎来范式革新。AI模型如何精准理解智能合约的业务特殊性?如何避免"AI幻觉"导致的误报?如何让模型学会区分"正常异常"与"攻击前兆"?答案藏在"提示工程"(Prompt Engineering)中。理解特定智能合约的业务逻辑(如DeFi协议的清算机制、NFT的铸造规则)识别复杂的攻击模式(如重入攻击的调用链特征、闪电贷的套利路径)结合链上链下数据进行多维度推理(如关联价格波动与异常交易)

AI架构全栈开发实战笔记 1010

C/C++编译总结 (Linux下g++、makefile、automake)Makefile笔记

先来唠叨几句,在熟悉了上面的g++命令,已经可以编译代码了,对于编译自己写的练习或者几个源文件的小项目,还能手动敲敲命令,but,真正工作了,开发项目了,一个工程中的源文件、头文件、依赖库多的是,就拿我刚工作接手的一个项目吧,vs2019打开,一个解决方案下13个项目,好几个静态库,好几个动态库,好几个组件库,每个库17、8个头文件、源文件。#强烈推荐在一行的起始位置写,非常不建议在依赖或者命令后面写注释,不熟练的时候可能会出现各种小问题,makefile中的注释和C++的注释很不一样。

csdn15646774的博客 610

HyperLynx(三十一)高速串行总线仿真(三)

(5)选择 “File”→ “Open Touchstone”,打开路径 C:\Adv_HL_Tmg\SERDES_Interface\models,选中connector.s4p,单击打开,如图所示。接下来,找出将要分配模型的S参数连接。(12)单击“Assign”按钮,选择模型类型为“Touchstone models”,在库中选择“connector.s4p”,如图所示。(14)单击“OK”按钮,选中“connector.s4p”这一行,单击“Connection Editor”按钮,如图所示。

小幽余生不加糖 3365

C/C++编译总结 (Linux下g++、makefile、automake)

Linux下g++、makefle、automake,一套流程的学习过程

csdn15646774的博客 1823

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

c调用c++,一个makefile例子

c调用c++,总的目标,是用g++编译生成的// File Name: test_cpp.h #ifndef TEST_CPP_H #define TEST_CPP_H extern "C" void c_call_cpp_printf(char* str); class TestCpp { public: TestCpp(char* p_char_p); ~TestCpp(); void test_cpp_printf(); private: char

yuanzhenhai的专栏 964

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

向大家推荐一个C/C++通用Makefile

向大家推荐一个C/C++通用Makefile - C - cpp - JavaEye论坛本文推荐了一个用于对 C/C++ 程序进行编译和连接以产生可执行程序的通用 Makefile。 在使用 Makefile 之前,只需对它进行一些简单的设置即可;而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile。因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C/C++ 程序快速建立一个可工作的 Makefile。 这个 Makefile 可以在 GNU Make

mindva的专栏 2173

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

基于VSCode进行C/C++项目开发【Makefile, C/C++, Clangd, Kconfig, No Cmake】

下载安装:vscode官网使用介绍:vscode官方文档常见问题:vscode官网常见问题了解更多:STFW、STFM一些搜索关键词: 所有搜索词前面可适当加上一个, 不一定要和搜索词完全相同,含义相同即可小彩蛋: vscode的可执行程序叫做code, 试试在命令行中输入C/C++插件介绍vscode里使用C/C++插件clangd介绍vscode里使用clangd插件下载clangd :clangd官网使用clangd实现代码跳转、分析等功能需要读取一个文件 由于我们的项目是使用Makefile来构建

weixin_62854534的博客 1615

Linux环境基础开发工具使用——gcc/g++、make/makefile and gdb

本篇将主要介绍三个 Linux 环境基础开发工具,gcc/g++、make/makefile and gdb。其中在介绍 gcc/g++ 的使用时,重点讲解了生成可执行文件的四个步骤:预处理、编译、汇编和编译,然后介绍了 gcc/g++ 的常用指令。介绍 make/makefile 的时候,我们分别介绍了 makefile 文件内部的原理、执行顺序、其中的内置符号以及在 makefile 中可以定义的变量。最后对于调试器 gdb 的使用,详细的介绍了 gdb 中常用的指令。

m0_74830524的博客 1988

C语言 编译、make、makefile、cmake、cmakelist总结

提示:如有不正确的地方,欢迎指正。

clc的博客 1292

c mysql makefile_向大家推荐一个C/C++通用Makefile

在使用Makefile之前,只需对它进行一些简单的设置即可;而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动Makefile。因此,即便是一个没有学习过Makefile书写规则的人,也可以为自己的C/C++程序快速建立一个可工作的Makefile。这个Makefile可以在GNUMake和GCC编译器下正常工作。但是不能保证对于其它版本的Make和编译...

weixin_28684825的博客 197

Linux中gcc、g++、gdb以及make/Makefile的使用

Linux中gcc、g++、gdb以及make/Makefile的使用

m0_53005929的博客 1万+

makefile通用模版使用

【原文】http://lpn520.iteye.com/blog/774919 说明本文推荐了一个用于对 C/C++ 程序进行编译和连接以产生可执行程序的通用 Makefile。 在使用 Makefile 之前,只需对它进行一些简单的设置即可;而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile。因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C

踏莎行的博客 1209

VS code编写(多文件)c/c++,使用make编译

环境 操作系统:win10 编译器: mingw32(需要安装make) 参考链接:【传送门】 目标:实现多文件的编译运行与调试 本文使用c写一个求和函数作为例子。首先新建一个文件夹,以英文命名,在文件夹中创建Debug和Release两个子文件夹 再创建多个c文件。 1. my.h头文件 #ifndef _MY_H #define _MY_H int sum(int m, int n); ...

Mr番茄蛋的博客 1万+

c和c++通用Makefile

<br />最近找不到这个文件了,现在找到了,就保留下来以后再学习语言,编写练习题的时候用.使用起来也很简单:<br />1. 只要在将测试程序的main函数所在文件命名为main.c(C语言)或者main.cpp(c++语言)即可使用.<br />2. 修改这个makefile PROGRAM变量的赋值即可,改成你自己的主程序文件名称.<br /> <br />#########################################################################

1621
上一篇: CentOS 7之Mysql基本安装、使用(备忘)
下一篇: Makefile模版(proC)
Malloc_New
博客等级 码龄11年 0粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值