我们已经准备好了,你呢?

2026我们与您携手共赢,为您的企业形象保驾护航!

当前正在推进一个项目,该项目文档数量庞大,因此必须对文件进行归类管理。这种做法能显著提升代码维护的便捷性。为此,需要对代码进行系统化梳理,构建优质文件结构至关重要。鉴于接触该领域时间尚短,若后续内容存在不妥之处,敬请各位批评指正。

编写

我要建立项目时,会设立好几个目录,具体有:资料库,代码库,执行区,构建区,素材库这五个目录,资料库用来存放程序所需的接口文件,代码库是程序的核心代码存放地,执行区是编译后生成的可运行文件所在位置,构建区是各类生成文件汇集的场所,素材库则存放辅助性文件。

那个东西一直放在那里,到现在还没有人去动过,它静静地待在角落里,显得有些落寞,周围的光线也似乎被它忽略了,时间仿佛在这里停滞了,它就像一个被遗忘的见证者,默默地注视着一切,却又无人问津,这种沉默让它更加神秘,也更加孤独,仿佛在诉说着一段不为人知的故事,却又无人倾听,它静静地存在,成为了一个永恒的谜团。

= $(shell pwd)/../

= $(shell pwd)/../Src

= $(shell pwd)/../Bin

= $(shell pwd)/../Lib

= $(shell pwd)/../Build

######################################

# file

系统自动搜寻所有以.c或.cpp为后缀的文件,将编译产物命名为对应文件名的.o格式目标文件

SRC 包括当前目录下所有以 c 结尾的文件,以及当前目录下所有以 cpp 结尾的文件

目标文件列表包含以c结尾的文件转换成的目标文件,还包含以cpp结尾的文件转换成的目标文件,以及指定源文件目录下的所有目标文件

你可以测试任何你想要的东西

#目标文件名,输入任意你想要的执行文件名

:= SDK

# and lib

#编译参数

CC:= g++

LIBS变量通过执行pkg-命令获取库文件信息,然后添加特定路径,最后以空格分隔各项内容

:=

:=

:= $(shell pkg- -- ) -I${}/

:= -std=gnu++11 $() $()

:= $()

#you not do here

.PHONY : objs clean

: $()

all : $()

objs : $(OBJS)

:

clean :

rm -fr $()/*.so

rm -fr $()/*.o

: clean

rm -fr $()

$() : $(OBJS)

将文件处理结果输出到目标文件,同时包含多个目标文件和库文件,每个元素之间用逗号分隔

该文件整体包含一个目录说明,首先需要明确存放文件的目录结构,这样后续操作会更加便捷。

第二步要找到原始文件,需要把源代码文档转为c文件格式。通过扩展通配符号功能,本流程目的是提取全部c文件,采用替换操作,将提取出的c文件全部转为o文件。

第三部分涉及编译工具的联合设定:包括载入库类档案,载入头类档案,载入编译装置,以及载入各类联合模块

第四部分是实施部分,实施部分包含目标与条件,要制作目标文档,必须先制作条件文档,

... : ...

...

...

那些基本用法,依据指令达成目标,那些是基础用法,若需深入了解,可参考相关文献

库文件编译

下面为编译库文件时所需要的文件

######################################

= $(shell pwd)/../../

= $(shell pwd)/../../Lib

= $(PWD)/../../Obj

######################################

# you can test to what you want

#共享库文件名,lib*.so

:= $()/.so

# and lib

#编译参数

CC:= g++

库文件列表 := 通过执行pkg-命令获取的参数结果

:=

:=

:= $(shell pkg- -- ) -I$()/

编译时加上调试信息,启用所有警告选项,采用最高优化级别,指定使用GNU C++11标准,然后依次执行两个命令,再执行另外两个命令

:= $()

# file

#源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件

:= $( *.c) $( *.cpp)

目标文件列表包括所有目录下的文件,以及特定后缀的cpp和o文件

.PHONY : objs clean

all : $()

clean :

rm -fr *.o

: clean

rm -fr $()

# 生成.o文件

$()/%.o : %.cpp

$(CC) $() -fpic -c $< -o $@ $(LIBS)

#生成动态库文件

$() : $(OBJS)

$(CC) - -o $@ $(OBJS)

编译动态库时,必须加入-以及-fpic这两个参数,其插入顺序很关键,稍有不慎就会导致编译失败,务必在文件起始部分放置,并在最外层代码段中增加一条指令

列表赋值为空括号;遍历列表中的每个元素;执行相关操作;

cd $$ && make; \

done

上句查找子文件里的,然后将子文件夹里的进行编译。

本说明指出该作品系独立创作完成,作者署名为 ,若需转引,请务必保留此说明及所附文章网址:

2156d6cf1da04ebf368ef53db680196d.png

感谢您的支持

感谢您的支持

二维码
扫一扫在手机端查看

本文链接:https://by928.com/11979.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线