进入项目实施阶段,如何科学管理多个相对独立又互相联系的 c/c++ 项目,本文将给出一个具体的综合项目框架。
目标
“综合项目框架”,是笔者自创名词,以示与 visual studio 解决方案、项目等名词区别。综合项目框架,从广义上仍可理解为一个项目,它管理着多个 visual studio 项目。综合管理框架目标包括:综合项目框架
文件/目录布局
\ :综合项目根目录
|– lib\ :.lib 文件存放目录,同时也是 c/c++ 项目 .lib 文件的输出目录
|– src\ :从互联网下载的未经任何修改的 c/c++ 源代码,供 visual studio 项目使用
|– vs\ :存放 visual studio 项目(每个 visual studio 项目按照 solution/project 的方式组织)
|– vs\public.props :visual studio 用户自定义宏文件,供所有 visual studio 项目使用
|– bin\ :可执行文件、 .dll 文件、.lua 文件的输出目录,提供 lua 运行环境visaul studio 项目配置宏
默认情况下,visual studio 项目输出为四种排列组合
本综合项目不涉及源代码调试,所以只关注 release/x86 和 release/x64 两类输出.
采用相对路径的方式定位 solution 的上级目录和文件,部分用户自定义宏如下:
$(LibDir)*:$(SolutionDir)..\..\lib\$(Platform)\*
$(BinDir)*:$(SolutionDir)..\..\bin\$(Platform)\*
$(SrcDir)*:$(SolutionDir)..\..\src\$(Platform)\*
$(LuaCDir)*:$(BinDir)*
$(LuaLDir)*:$(BinDir)lua\*
$(LuaHeaderDir)*:$(SrcDir)luasource\*
$(Sqlite3HeaderDir)*:$(SrcDir)sqlite3src\*结束语
本文介绍了一个综合项目框架,为提高效率和减小复杂度,该框架在两方面做了简化,一是不考虑 debug 版本的输出,二是忽略了源代码多版本的问题。依托该框架,下一步将编译 lua 解释器(可执行文件,lua 运行核心)和 .lib 文件(供其他 c/c++ 项目编译使用)。