一个大型项目往往会包含很多个子项目、测试例子、lib库项目、外部第三方lib库项目,设计到项目类型有: lib库,dll库,exe可运行程序,这里给出个人大型项目目录结构及VS配置。(下面是基于vs 2013 其他版本vs类似)
1>. 目录结构:
上面是一个游戏服务器项目
目录3rd : 存放第三方库
目录bin : 项目生成的二进制文件
目录lib : lib库项目生成的.lib文件
目录temp : 编译生成中间文件存储目录(该段落是后期补充的)
libCore : 核心库项目, 其他库项目名也以lib开头+ 名字进行添加
example 开头的项目: 为测试项目
XGameServer: 游戏服务器可运行项目
2>. lib项目设置:
设置中间目录: $(SolutionDir)\temp\$(Configuration)\ (该段落是后期补充的)
配置属性: 常规 --- 输出目录 : $(SolutionDir)\bin\$(Configuration)\ // 对应目录bin
调试 --- 工作目录 : $(SolutionDir)\bin\$(Configuration)\ // 对应目录bin
(输出目录和工作目录最好保证相同,方便调试)
库管理器: 输出目录 : ..\lib\$(TargetName)$(TargetExt) //对应目录lib
3>. dll项目设置:
配置属性: 常规 --- 输出目录 : $(SolutionDir)\bin\$(Configuration)\ // 对应目录bin
调试 --- 工作目录 : $(SolutionDir)\bin\$(Configuration)\ // 对应目录bin
链接器 --- 常规 --- 输出文件 : $(OutDir)$(TargetName)$(TargetExt) // 对应目录bin 输出dll文件
(输出目录和工作目录最好保证相同,方便调试)
链接器 --- 高级 --- 导入库 : ..\lib\$(TargetName).lib //对应目录lib 输出lib文件 仅保存dll函数名及地址 几k大小
4>. exe项目设置:
配置属性: 常规 --- 输出目录 : $(SolutionDir)\bin\$(Configuration)\ // 对应目录bin
调试 --- 工作目录 : $(SolutionDir)\bin\$(Configuration)\ // 对应目录bin
C/C++ --- 常规 --- 附加包含目录: 项目使用lib库头文件目录
链接器 --- 常规 --- 输出文件 : $(OutDir)$(TargetName)$(TargetExt) // 对应目录bin 输出exe文件
链接器 --- 常规 --- 附加库目录 : ..\lib // 对应目录lib 项目使用lib库所在目录
链接器 --- 输入 --- 附加依赖项 : 项目具体使用的lib库
(输出目录和工作目录最好保证相同,方便调试)