Linux 多个cpp文件的编译(Makefile)
打包so文件:
CC = g++
CFLAGS=-Wall -O2 -fPIC
TARGET = libbg.so
SRCS := $(wildcard *.cpp)
OBJS := $(patsubst %cpp, %o, $(SRCS))
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -shared -o $@ $^
%.o:%.cpp
$(CC) $(CFLAGS) -c $<
clean:
rm -f *.o $(TARGET)
普通编译:
CC = g++
CFLAGS=-Wall -O2
TARGET = main
SRCS := $(wildcard *.cpp)
OBJS := $(patsubst %cpp, %o, $(SRCS))
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
%.o:%.cpp
$(CC) $(CFLAGS) -c $<
clean:
rm -f *.o $(TARGET)
其中
$@ 表示目标文件
$^ 表示所有依赖项
$< 表示第一个文件
SRCS := $(wildcard *.cpp) 表示获取当前目录下的c文件集,放在变量SRCS中
OBJS := $(patsubst %cpp, %o, $(SRCS)) 表示将对应的c文件名转为o文件后放在下面的OBJS变量中
转载于:https://www.cnblogs.com/sssblog/p/9701091.html
Linux 多个cpp文件的编译(Makefile)相关推荐
- PointNet++等3D点云中用到的.cu、.cpp文件的编译的简单理解
文章目录 1:cuda-c 2:一个简单的配置流程 3:.cu..cpp的关系 4:混合编译.cu..cpp 5:动态链接库(windows.linux) 6:NVCC学习笔记 7:g++的一些常用命 ...
- Linux下运行.cpp文件
如何在Ubuntu16下运行一个简单的.cpp文件呢,做法如下: 假设我在桌面上写了一个hell,world程序; 保存为abc.cpp 然后在终端打开: 1.点击保存的文件的属性,看在哪里,我的是在 ...
- as 怎么将多个cpp文件代码编译成so_一段C代码,是如何编译运行的?
想一下, 我们想把源文件放到内存中执行,应该怎么做? 直觉上我们需要将源代码翻译成机器语言,以某种结构组织代码和数据.再让CPU去按这种结构读取指令.如果是多个源文件, 我们可能还需要按某种方式将它们 ...
- as 怎么将多个cpp文件代码编译成so_你编写的Java代码是咋跑起来的?
如果你是一名 Java 开发人员,你肯定指定 Java 代码有很多种不同的运行方式.比如说可以在开发工具(IDEA.Eclipse等)中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至 ...
- Linux编辑firmware的文件,rk3328编译Linux固件
一.编译 Linux 固件 这一章将介绍编译 ROC-RK3328-CC Linux 固件的整个流程. 1.1 准备工作 Linux 固件在如下的环境中编译: Ubuntu 16.04 amd64 安 ...
- linux 下根据cpp文件快速书写头文件
假设我们现在有一个hello.cc文件,我们如果想要书写它的头文件hello.h,使用如下的命令即可: cat hello.cc | grep "^\w.*)$" > hel ...
- Linux下xxx.c文件与xxx.cpp文件的编辑和运行命令
Linux平台下.c文件的编辑和运行命令 在 Linux 平台下我是用vim文本编辑器编写代码的 一:在Linux环境下编辑.编译并执行一个 xxx.c 文件步骤 1.首先要创建一个xxx.c文件 输 ...
- linux之让终端支持C++11/14编译cpp文件
1 问题 我们的项目很多智能指针,但是我linux的终端肯定不支持C++11/14, 我们平时都是用的下面的命令编译c++文件 g++ -g file.cpp -o file r 如果是用c++11 ...
- linux中命令对c文件进行编译,Linux下C语言编译基础及makefile的编写
这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助 1.源程序的编译 在L ...
最新文章
- eplan和西门子plc的对接_玩转西门子全集成自动化之TIA Selection Tool
- Linux日志系统分析:rsyslog、syslog和klog
- 腐蚀rust服务器命令_RUST++ MOD
- hdu 1505 City Game
- 解读《新一代人工智能发展规划》,企业如何才能迎来产业高潮
- centOS 6.0无法运行dump指令的解决方法
- java代码 计算器_java代码---------计算器实现
- Intouch和S7300连接 DAServer分组 SMC驱动备份
- 你能抱我一下,好吗?
- 嵌入式gdbserver远程调试【原创】
- lvs,haproxy实现负载均衡
- Python连接mysql密码用密文_druid配置数据库连接使用密文密码
- oracle hibernate 注解,Hibernate4实战之Hibernate4注解零配置
- 全国省市县区乡镇级别的矢量文件(百度网盘可下载)
- 基于Vue的移动端图片裁剪组件 vue-clip(完美兼容ios与安卓)
- 经典书籍《宽客人生》阅读心得
- ROS下里程计辅助2D激光雷达去运动畸变
- 【FPGA】FPGA对AD7606进行串行数据采集
- java判断字母是否为元音_Java程序来检查字母是元音还是辅音
- gt,gte,lt,lte含义
热门文章
- PHP之preg_replace()与ereg_replace()正则匹配比较讲解
- winform C#的委托事件在winform窗体中传值,也可用于刷新另一窗体(窗体A刷新窗体B)...
- MySQL中的配置参数interactive_timeout和wait_timeout
- 理解ASP.NET MVC Framework Action Filters(翻的)
- 看别人的C/C++代码时发现自己所不知道的语法~
- mysql数据库设计实践_MYSQL教程分享20个数据库设计的最佳实践
- C 引用和指针的区别
- leetcode算法题--骑士拨号器
- C/C++循环输入问题
- kubernetes 清理日志命令_Kubernetes之容器数据写满磁盘解决方法