随笔分类 - 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
阅读全文
摘要:文件结构如下: 其中,前两个.so文件为动态库文件(还是静态库?),.h文件都是库的头文件,.cpp文件是我使用的调用文件 makefile编写如下: ofd_test:OFD_test.cpp ofdsdk.h g++ OFD_test.cpp ofdsdk.h -o ofd_test -lsw3
阅读全文
摘要:前言: 在linux下编译程序运行时,因为涉及到动态库加载搜索问题,老是会出现加载失败的现象出现,现在整理一下相关知识,供下次遇到问题查看。 linux下程序寻找动态库路径: 1.编译生成时,指定的搜索路径。 在makefile中,一般使用”-Wl -rpath”来指明程序运行时到哪个路径去找库。当
阅读全文
摘要:DIR_INC = ./include DIR_SRC = ./src DIR_OBJ = ./obj DIR_BIN = ./bin LIBS += -Wl,-rpath=../lib/HCNetSDKCom -L./lib/ LIBS += -lAudioRender -lHCCore -lhc
阅读全文
摘要: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
阅读全文
摘要:LIBS+= -L $$PWD/../HKUnifyCamera_one/Debug -lHKUnifyCamera -luuid -Wl,-rpath=$$PWD/../HKUnifyCamera_one/Debug $$PWD:表示获取当前文件所在路径,用于相对路径编译 -Wl,-rpath:程
阅读全文
摘要:命令的回显: 通常,make在执行命令之前都会把执行的命令进行输出,例如: 关闭命令回显有以下几种方式: 每个需要关闭回显的命令行之前加上”@”符号: 执行make时机上参数-s 或 –slient进制所有执行命令的显示。 在Makefile中使用没有以来的特殊目标时,.SLIENT也可以禁止所有命
阅读全文
摘要:多目标规则 多目标规则,可以简单的理解为是一种将多条具有1)相同依赖和2)相同生成命令的规则,合并成一条规则的语法,其基本格式为: targets...: prerequisites... commands ... 假设我们有以下makefile: 利用多目标规则,可以将makefile改写成mak
阅读全文
摘要:变量的定义 makefile中的变量,与C语言中的宏类似,它为一个文本字符串(变量的值,其类型只能是字符串类型)提供了一个名字(变量名)。 变量的基本格式: 变量名 赋值符 变量值 变量名指的就是该变量的名字,是不包括“:”、“#”、“=”、前置空白和尾空白的任何字符串。需要注意的是,尽管在GNU
阅读全文
摘要:makefile工具箱 complicated项目的构建 文件结构如下: 文件内容如下: 项目依赖关系: gcc编译出可执行文件的过程包含了两个过程,编译和链接。 makefile如下: 运行结果:
阅读全文
摘要:Makefile基本概念示例 新建一个Code文件夹来测试一个简单的makefile 目录结构如下: 源码如下: makefile依赖: 一般在编写makefile之前都需要先分析清楚整个工程各个模块的依赖关系,及相应的生成命令。我们的project_simple工程最终生产的是一个叫simple的
阅读全文
摘要:make和makefile makefile文件帮助我们记录了整个项目工程的所有需要编译的文件列表,这样我们在编译时仅需要输入简单的make命令就能编译出我们期望的结果。 makefile文件反映了整个项目中各个模块的依赖关系,这样我们改动了某些源文件以后,仅需简单的输入make命令,make工具就
阅读全文
摘要: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 ...
阅读全文
摘要:如果要包含多个头文件目录需要 在编译时就不要加-I了
阅读全文
摘要:1.编译目标代码时指定的动态库搜索路径; 2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径; 3.配置文件/etc/ld.so.conf中指定的动态库搜索路径; 4.默认的动态库搜索路径/lib; 5.默认的动态库搜索路径/usr/lib。
阅读全文
摘要:实际当中程序文件比较大,这时候对文件进行分类,分为头文件、源文件、目标文件、可执行文件。也就是说通常将文件按照文件类型放在不同的目录当中,这个时候的Makefile需要统一管理这些文件,将生产的目标文件放在目标目录下,可执行文件放到可执行目录下。 DIR_INC = ./include DIR_SR
阅读全文
摘要:在平时使用中,可以使用以下的makefile来编译单独的代码 使用方法就是make 后面跟文件名就可以单独编译该程序(不要加后缀.c) 更正: 上面的makefile无法实现make clean删除执行文件的原因是 代码错误。 以下是可以生成并且删除对应的文件
阅读全文
摘要:Makefile 命令 1、第一条规则是用来生成终极目标的规则 如果规则中的依赖不存在,向下寻找其他的规则 更新机制:比较的是目标文件和依赖文件的时间 1)查找指定目录下,指定类型的文件 src = $(wildcard ~/aa/*.c) 2) 匹配替换函数 obj = $(patsubst %.
阅读全文
摘要:命令方式: makefile 或 Makefile makefile规则: 目标,依赖,命令 目标:依赖条件 命令 版本1: 版本2: makefile工作原理: 版本3: makefile中自动变量 $<:规则中的第一个目标 $@:规则中的目标 $:规则中所有的依赖 只能在规则的命令中使用 Mak
阅读全文
摘要:报错: exbot@ubuntu:~/wangqinghe/ReadConfig$ make gcc readConfig.c -c readConfig.o gcc: error: readConfig.o: 没有那个文件或目录 make: *** [readConfig.o] 错误 1 改正:
阅读全文