我将开始一个涉及跨平台GUI和大量数字运算的大型软件项目.我计划在C++和CUDA中编写大部分应用程序后端,在Qt4中编写GUI.我计划使用Make作为我的构建系统.这将是一个只有两个开发人员的项目,一旦我相对较远,它可能最终成为一个开源项目.
我的主要问题是,是否有人有任何提示/资源来开发软件背后的架构.
我即将毕业的大学几乎没有这个,这让我感到沮丧.在这一点上,我已经做了很多谷歌搜索,运气不足我需要的东西.我不是要求用勺子喂食所有东西,我会完全满足于书籍或与此相关的网站的链接.
我已经分别完成了大部分这些工作,但我从未尝试将所有内容组合成一个大包.
有人会推荐Release It!:为我所询问的内容设计和部署生产就绪软件吗?
1) 结构可以相同,但如果您在子目录中包含文件,请确保使用'/
而不是\
. 前者也适用于 Windows。
2)我会查看cmake(http://www.cmake.org/)来管理跨多个平台的构建。这将为您减轻整个过程中的很多痛苦。
3)尽可能多地使用STL和Boost。这些库在设计时就考虑到了这个问题。这将涵盖您可能需要做的大部分事情。您已经选择了优秀的 Qt 库,因此您的 GUI 也不是问题。将这三者结合起来,您已经完成了大部分工作。也就是说,您可能必须做一些独立于平台且不属于任何这些内容的事情。为此,我建议您编写一个在所有平台上公开一致接口的类,并在源文件中隐藏带有预处理器指令的细节。必须公开一致的接口。
4)使用SVN。我不知道如何在其他编译器上执行此操作,但在 Visual Studio 中获取最新版本并将其插入到某个文件中,然后将其包含在您的项目中是微不足道的。您可以使用构建事件来执行此操作。抱歉,我无法详细说明其他平台。
此外,如果您必须使用 STL、Boost、Qt 等之外的语言,请注意所有平台上 API 调用的文档。过去,我曾被fseek()
API 调用的行为所困扰,该调用在一种实现上写入字节以填充到目的地,但在另一种实现上则不然。这些可能是令人头痛的主要原因,也是尝试并坚持使用上面提到的经过尝试和测试的库的另一个原因。
归档时间: |
|
查看次数: |
455 次 |
最近记录: |