随笔分类 -  Makefile

摘要:DIR_INC=. DIR_SRC=. DIR_OBJ:=./obj SRC = $(wildcard ${DIR_SRC}/*.cpp) OBJ = $(patsubst %.cpp, ${DIR_OBJ}/%.o, $(notdir ${SRC})) TARGET=JSON BIN_TARGET 阅读全文
posted @ 2022-07-25 17:10 王清河 阅读(400) 评论(0) 推荐(0) 编辑
摘要:文件结构如下: 其中,前两个.so文件为动态库文件(还是静态库?),.h文件都是库的头文件,.cpp文件是我使用的调用文件 makefile编写如下: ofd_test:OFD_test.cpp ofdsdk.h g++ OFD_test.cpp ofdsdk.h -o ofd_test -lsw3 阅读全文
posted @ 2020-09-10 17:53 王清河 阅读(267) 评论(0) 推荐(0) 编辑
摘要:前言: 在linux下编译程序运行时,因为涉及到动态库加载搜索问题,老是会出现加载失败的现象出现,现在整理一下相关知识,供下次遇到问题查看。 linux下程序寻找动态库路径: 1.编译生成时,指定的搜索路径。 在makefile中,一般使用”-Wl -rpath”来指明程序运行时到哪个路径去找库。当 阅读全文
posted @ 2019-12-23 17:21 王清河 阅读(2237) 评论(0) 推荐(1) 编辑
摘要:DIR_INC = ./include DIR_SRC = ./src DIR_OBJ = ./obj DIR_BIN = ./bin LIBS += -Wl,-rpath=../lib/HCNetSDKCom -L./lib/ LIBS += -lAudioRender -lHCCore -lhc 阅读全文
posted @ 2019-12-13 18:27 王清河 阅读(189) 评论(0) 推荐(0) 编辑
摘要:DIR_INC = ./include DIR_SRC = ./src DIR_OBJ = ./obj DIR_BIN = ./bin DIR_LIB = -Wl,-rpath=/home/exbot/shareWin/UnityCamera/TestCamera/lib \\ -L/home/ex 阅读全文
posted @ 2019-11-28 15:01 王清河 阅读(365) 评论(0) 推荐(0) 编辑
摘要:LIBS+= -L $$PWD/../HKUnifyCamera_one/Debug -lHKUnifyCamera -luuid -Wl,-rpath=$$PWD/../HKUnifyCamera_one/Debug $$PWD:表示获取当前文件所在路径,用于相对路径编译 -Wl,-rpath:程 阅读全文
posted @ 2019-11-11 17:12 王清河 阅读(1089) 评论(0) 推荐(0) 编辑
摘要:命令的回显: 通常,make在执行命令之前都会把执行的命令进行输出,例如: 关闭命令回显有以下几种方式: 每个需要关闭回显的命令行之前加上”@”符号: 执行make时机上参数-s 或 –slient进制所有执行命令的显示。 在Makefile中使用没有以来的特殊目标时,.SLIENT也可以禁止所有命 阅读全文
posted @ 2019-10-31 14:12 王清河 阅读(245) 评论(0) 推荐(0) 编辑
摘要:多目标规则 多目标规则,可以简单的理解为是一种将多条具有1)相同依赖和2)相同生成命令的规则,合并成一条规则的语法,其基本格式为: targets...: prerequisites... commands ... 假设我们有以下makefile: 利用多目标规则,可以将makefile改写成mak 阅读全文
posted @ 2019-10-30 18:51 王清河 阅读(210) 评论(0) 推荐(0) 编辑
摘要:变量的定义 makefile中的变量,与C语言中的宏类似,它为一个文本字符串(变量的值,其类型只能是字符串类型)提供了一个名字(变量名)。 变量的基本格式: 变量名 赋值符 变量值 变量名指的就是该变量的名字,是不包括“:”、“#”、“=”、前置空白和尾空白的任何字符串。需要注意的是,尽管在GNU 阅读全文
posted @ 2019-10-30 09:31 王清河 阅读(125) 评论(0) 推荐(0) 编辑
摘要:makefile工具箱 complicated项目的构建 文件结构如下: 文件内容如下: 项目依赖关系: gcc编译出可执行文件的过程包含了两个过程,编译和链接。 makefile如下: 运行结果: 阅读全文
posted @ 2019-10-28 10:06 王清河 阅读(124) 评论(0) 推荐(0) 编辑
摘要:Makefile基本概念示例 新建一个Code文件夹来测试一个简单的makefile 目录结构如下: 源码如下: makefile依赖: 一般在编写makefile之前都需要先分析清楚整个工程各个模块的依赖关系,及相应的生成命令。我们的project_simple工程最终生产的是一个叫simple的 阅读全文
posted @ 2019-10-25 17:14 王清河 阅读(111) 评论(0) 推荐(0) 编辑
摘要:make和makefile makefile文件帮助我们记录了整个项目工程的所有需要编译的文件列表,这样我们在编译时仅需要输入简单的make命令就能编译出我们期望的结果。 makefile文件反映了整个项目中各个模块的依赖关系,这样我们改动了某些源文件以后,仅需简单的输入make命令,make工具就 阅读全文
posted @ 2019-10-25 16:19 王清河 阅读(276) 评论(0) 推荐(0) 编辑
摘要:VERSION = 1.0.0 SOURCE = $(wildcard ./*.cpp) OBJ = $(patsubst %.cpp,%.o,$(SOURCE)) INCLUDE = -I /usr/include/mysql/ LIBS = -lmysqlclient LIB_PATH = -L /usr/lib/mysql/ CFALGS = -g TARGET = test ... 阅读全文
posted @ 2019-09-25 08:54 王清河 阅读(101) 评论(0) 推荐(0) 编辑
摘要:如果要包含多个头文件目录需要 在编译时就不要加-I了 阅读全文
posted @ 2019-09-18 15:42 王清河 阅读(191) 评论(0) 推荐(0) 编辑
摘要:1.编译目标代码时指定的动态库搜索路径; 2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径; 3.配置文件/etc/ld.so.conf中指定的动态库搜索路径; 4.默认的动态库搜索路径/lib; 5.默认的动态库搜索路径/usr/lib。 阅读全文
posted @ 2019-09-16 10:53 王清河 阅读(1080) 评论(0) 推荐(0) 编辑
摘要:实际当中程序文件比较大,这时候对文件进行分类,分为头文件、源文件、目标文件、可执行文件。也就是说通常将文件按照文件类型放在不同的目录当中,这个时候的Makefile需要统一管理这些文件,将生产的目标文件放在目标目录下,可执行文件放到可执行目录下。 DIR_INC = ./include DIR_SR 阅读全文
posted @ 2019-09-09 17:18 王清河 阅读(1070) 评论(3) 推荐(1) 编辑
摘要:在平时使用中,可以使用以下的makefile来编译单独的代码 使用方法就是make 后面跟文件名就可以单独编译该程序(不要加后缀.c) 更正: 上面的makefile无法实现make clean删除执行文件的原因是 代码错误。 以下是可以生成并且删除对应的文件 阅读全文
posted @ 2019-08-05 19:11 王清河 阅读(131) 评论(0) 推荐(0) 编辑
摘要:Makefile 命令 1、第一条规则是用来生成终极目标的规则 如果规则中的依赖不存在,向下寻找其他的规则 更新机制:比较的是目标文件和依赖文件的时间 1)查找指定目录下,指定类型的文件 src = $(wildcard ~/aa/*.c) 2) 匹配替换函数 obj = $(patsubst %. 阅读全文
posted @ 2019-08-04 14:00 王清河 阅读(297) 评论(0) 推荐(0) 编辑
摘要:命令方式: makefile 或 Makefile makefile规则: 目标,依赖,命令 目标:依赖条件 命令 版本1: 版本2: makefile工作原理: 版本3: makefile中自动变量 $<:规则中的第一个目标 $@:规则中的目标 $:规则中所有的依赖 只能在规则的命令中使用 Mak 阅读全文
posted @ 2019-08-03 18:23 王清河 阅读(174) 评论(0) 推荐(0) 编辑
摘要:报错: exbot@ubuntu:~/wangqinghe/ReadConfig$ make gcc readConfig.c -c readConfig.o gcc: error: readConfig.o: 没有那个文件或目录 make: *** [readConfig.o] 错误 1 改正: 阅读全文
posted @ 2019-07-17 15:43 王清河 阅读(155) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示