[英]C++ project structure under Visual Studio 2008
所以,我已经做了很多年的Java,但现在我正在开始一个C ++项目。 我正在尝试确定设置该项目的最佳实践。
在项目中,您通常如何构建代码? 你是否使用命名空间文件夹来创建Java样式并以这种方式分解你的源代码? 您是否将公共标题保存在include目录中以便于引用?
我已经看到了提及的两种方式,但对于大型项目来说,什么是好方法?
另外,您如何处理应用程序结构中的资源/文件夹? 对于最终项目安装log
文件夹来存储日志,可能是库文件的lib
文件夹,可能是data
文件夹,但是如何管理项目中的这些位,这一切都很好! 有没有办法定义,所以当你构建解决方案时,它为你构建结构? 或者,您只需要进入构建的配置文件夹(调试,发布等),并手动构建文件结构,从而确保您的EXE文件期望找到的路径是否正确定位?
我在这里也有一个相关但不同的问题。 我说nmake,但它确实是任何构建系统:Scons,Bakefile,nmake,Ant,vcproj
我通常构造代码的方式是通过应用程序或DLL中的“模块”。 我没有倾向于使用命名空间,但这并不意味着你不应该。
在IDE中我有这样的东西:
/solution
/prj1
/headers
/module1
/module2
/resource
/source
/module 1
/module 2
/test
/prj2
/headers
/module1
/module2
/resource
/source
/module 1
/module 2
/test
在文件系统上我有这样的事情:
/solution
/prj1
/bin
/build
/include
/module1
/module2
/lib
/res
/src
/module1
/module2
/test
/prj2
/bin
/build
/include
/module1
/module2
/lib
/res
/src
/module1
/module2
/test
我们倾向于使每个组件成为一个解决方案,包含一个或多个项目(或子组件)和一个测试项目。 测试项目包含所有单元测试。
然后,我们根据模块和组件将解决方案安排到树中,例如:
//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution
该解决方案将包含几个Visual Studio项目:
//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution/Something
//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution/SomethingElse
//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution/TestTheSolution
树的深度可能更多,或更少,具体取决于组件/子组件的数量。 我们还倾向于在子系统和子组件级别具有一般可重用的东西的“通用”解决方案。
然后,我们有一个子系统级解决方案,将所有内容联系在一起以构建子系统。
我们不使用或导出到“include”目录。 我们让Visual Studio在我们的沙箱中构建和链接。 我们有一个单独的“发布”沙箱,以确保我们不会意外链接错误的库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.