在我的(主要是C ++)开发中,我一直坚持使用源代码之外的版本。也就是说,我的来源通常坐落在一个/project/src
目录和建立生活在一个/project/build/bin/release
,/project/build/bin/debug
目录。之所以这样做,是因为它可以使我的源目录与中间文件保持干净,我的所有二进制文件都位于一个位置,打包更容易,清理更容易,版本控制也更容易。(我有什么想念吗?)
我现在正在继承一个使用源代码内部构建的(大型)项目。这种结构的动机是什么,它的优点是什么?(我最关心的是工程级别的原因与个人喜好类型的原因。)
我希望拉科斯(Lakos)的“大型C ++软件设计”能在其中发挥作用,但如果这样做,我会错过它。
2
道歉。我正在寻找“在源代码中改进'x'”或“他们对确保'y'的帮助”或“然后自动测试就可以'z'”。不是咆哮。我特别不想在这里引起见解!
—
DiB
您所说的“源代码”构建到底是什么意思?诸如此类
—
布朗
/project/src/bin/release
,或者实际上是所有中间文件和输出文件/project/src
?如果有十几个源文件,则后者确实是一团糟,前者是可以的。
@Tibo,它不仅使makefile变得异常简单,而且似乎也是大多数IDE的默认设置(至少在我几年前检查过)。
—
Bart van Ingen Schenau,
@BartvanIngenSchenau真的吗?在这种情况下,您一直在使用什么IDE?Qt不会这样做,实际上它似乎将构建与源代码的距离尽可能地远,Eclipse不会这样做,您可能会说Clion会这样做,但这只是由于
—
WHN
main.cpp
最初位于项目的顶层,但仍在远离源的顶层创建一个单独的cmake构建目录。我相信MSVS在这方面也与Clion类似。