【发布时间】:2015-01-12 23:41:10
【问题描述】:
我是 C++ 的新手(学习了一些游戏编程知识),我想使用通用约定设置我的目录结构。我没有看到明确建议的主要混淆点是我放置依赖项的位置。例如,我将研究 FreeGLUT 和 FreeType。我下载的第一件事是 FreeGLUT 的 MSVC 版本,它带有一个子目录结构,如下所示:
bin/
freeglut.dll
x64/
freeglut.dll
include/
GL/
someheaders.h ...
lib/
freeglut.lib
x64/
freeglut.lib
readme.txt
我的 C# 开发人员想在我的解决方案目录中创建一个名为“Dependencies”的子目录,将所有这些内容放在它自己的子目录中,然后对任何其他库执行相同操作,类似于 NuGet 包目录,然后在构建时引用适当的位置。我不是 100% 确定,但我猜如果头文件分散在不同的子目录中,这对于引用头文件可能会很混乱,因为你不像在 C# 中那样在 C++ 中“添加引用”。
我的依赖项应该成为我项目的一部分吗?我应该将它们分成不同的基本文件夹吗?标准的做法是什么?
n.b.我了解 lib 或 dll 是一种选择(即您不会在构建中同时使用两者)
【问题讨论】:
-
嗯,我的问题可能与stackoverflow.com/questions/3605484/…重复
-
错误的焦点,考虑你将如何组织你的源代码管理。这样它仍然可以在 5 年后检出并重建完全相同的二进制文件。 C++ 编译器和链接器不会阻止您。如果您需要灵感,请查看 github 项目。
-
库经常在项目之间共享,因此它们很少能很好地从属于单个项目。
标签: c++