linux C/C++ makefile

简介: linux C/C++ makefile

.

├── aa.sh

├── makefile

├── public.cpp

└── public.h

写sh脚本

//aa.sh
g++ -c -o libpublic.a public.cpp
g++ -fPIC -shared -o libpublic.so public.cpp

执行ssh脚本

sh aa.sh

编写makefile

#指定编译的目标文件libpublic.a和libpublic.so
all:libpublic.a libpublic.so
#编译libpublic.a需要依赖public.h和public.cpp
#如果被依赖文件内容发生了变量,将重新编译libpublic.a
libpublic.a:public.h public.cpp
  g++ -c -o libpublic.a public.cpp
libpublic.so:public.h public.cpp    
  g++ -fPIC -shared -o libpublic.so public.cpp
#clean用于清理编译目标文件,仅在make clean才会执行
clean:
  rm -f libpublic.a libpublic.so

执行makefile

make

执行清理

make clean

被依赖的文件改变make会重新编译

├── app

│ ├── demo

│ ├── demo.cpp

│ └── makefile

└── tools

  ├── aa.sh

  ├── libpublic.a

  ├── makefile

  ├── public.cpp

  └── public.h

#app/makefile
all:demo
demo:demo.cpp
  g++ -o demo demo.cpp -L/root/code/02demo/tools -lpublic -I/root/code/02demo/tools
clean:
  rm -f demo

-I添加.h包含目录

设置变量

#app/makefile
INCLUDEDIR=-I/root/code/02demo/tools
LIBDIR=-L/root/code/02demo/tools
all:demo
demo:demo.cpp
  g++ -o demo demo.cpp $(LIBDIR) -lpublic $(INCLUDEDIR)
clean:
  rm -f demo


相关文章
|
14天前
|
存储 网络协议 编译器
【干货总结】Linux C/C++面试知识点
Linux C/C++基础与进阶知识点,不仅用于面试,平时开发也用得上!
430 8
|
8天前
|
Linux vr&ar C语言
Linux怎样更新Centos下Gcc版本支持C17?Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)
Linux怎样更新Centos下Gcc版本支持C17?Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)
30 2
|
11天前
|
Linux C++
c++高级篇(三) ——Linux下IO多路复用之poll模型
c++高级篇(三) ——Linux下IO多路复用之poll模型
|
11天前
|
缓存 监控 网络协议
c++高级篇(二) ——Linux下IO多路复用之select模型
c++高级篇(二) ——Linux下IO多路复用之select模型
|
16天前
|
Linux 开发工具 数据安全/隐私保护
Linux基础——Linux开发工具(下)_make/makefile
Linux基础——Linux开发工具(下)_make/makefile
20 1
|
4天前
|
域名解析 网络协议 程序员
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
13 0
|
4天前
|
域名解析 网络协议 程序员
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
10 0
|
5天前
|
Linux
【make/Makefile】Linux下进度条的设计与实现
【make/Makefile】Linux下进度条的设计与实现
|
5天前
|
NoSQL 编译器 Linux
【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用
【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用
12 0
|
11天前
|
算法 Linux Shell
c++高级篇(一) —— 初识Linux下的进程控制
c++高级篇(一) —— 初识Linux下的进程控制