主机论坛_虚拟主机_美国主机_美国虚拟主机_云主机技术_全球主机交流聚集地—Web Hosting Talk 中文站

找回密码
立即注册
发新帖

0

收听

5

听众

991

主题
发表于 2022-8-3 13:13:01 | 查看: 36| 回复: 0
前言
一个项目工程就是一个解决方案有唯一的一个sln文件。一个解决方案可以有多个项目。在当前负责的工程,有25个项目构成,可以说是25个模块。工程中的项目可以是一个静态库,动态库,或者是一个可执行程序。在本文章中,并不像其他的小型工程拷贝一些库的源码,直接添加到工程中,而是作为一个项目,添加到工程中,并且通过设置项目的依赖项,完成工程的单步调试(选择属性,C/C++ 优化 禁用优化)。解决方案配置成Release,好处在于调用一个Release版本的第三方dll,能够无缝的运行。(本文没有涉及到讨论显式动态加载dll)

说明
工程包括test(可执行程序),agg(静态库),iconv(动态库)

创建工程目录如下
工程目录Games\

----release\(版本发布的目录)
----include\(每一个项目都将头文件拷贝到这个目录下以自己工程名称为目录名的目录下)
 ------agg\头文件
 ------zlib\头文件
----lib\(每一个项目都将lib拷贝到这个目录下以自己工程名为文件名)

 ------agg.lib

 ------zlib.lib

----src\(每一个项目的源码都放在该目录)

 ------agg\

 ------zlib\

 ------test\

操作步骤

1 构建agg静态库
新建一个Win32项目,名称agg,选择应用程序类型:静态库.将agg库的文件拷贝到agg项目下,将agg中include头文件拷贝到include\agg\目录下,添加源码文件到工程中。
配置属性:
管理员输出文件 ..\..\lib\agg.lib

2 构建zlib动态库
新建一个Win32项目,名称为zlib,选择应用程序类型:dll。提供给外部使用的类或者函数都需要使用关键字进行修饰:__declspec(dllexport),说明将其导出。

属性配置:

链接器:常规输出文件..\..\release\zlib.dll

链接器:高级导入库 ..\..\lib\zlib.lib

生成事件生成后事件  copy .\zlib.h ..\..\include\zlib

3. 构建test可执行程序
新建一个Win32控制台应用程序,名称为test,然后位置选择,已经建立好的Games\src,创建一个test的工程,没有选中创建解决方案的目录(该选项会为工程额外创建一个目录存放源码,没有选中,把源代码和sln解决方案文件放在同一个目录,剩下的项目也是这样子设置)。打开项目的依赖性,将agg,zlib选中,然后就可以调试了

属性配置:
C/C++ 附加包含目录 ..\..\include

链接器附加依赖项 zlib.lib agg.lib

链接器常规   ..\..\release\game.exe

大型工程会进行如下的设定:
1)每一个C++项目都有自己的命名空间,除了添加的C库
2)文件名小写,声明前缀,std等等规定
云专线 海外专线 http://www.vecloud.com

收藏回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|WebHostingTalk中文站

GMT+8, 2024-4-27 19:54 , Processed in 0.071925 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表