私の(主にC ++)開発では、長い間、ソース外ビルドの使用に固執してきました。つまり、私のソースは通常/project/src
ディレクトリにあり、ビルド/project/build/bin/release
は/project/build/bin/debug
ディレクトリにあります。これを行ったのは、中間ファイルからソースディレクトリをクリーンに保ち、すべてのバイナリを1か所にまとめ、パッケージ化がより簡単になり、クリーニングがより簡単になり、バージョン管理がより簡単になるからです。(私は何かを見逃しましたか?)
現在、ソース内ビルドを使用する(大きな)プロジェクトを継承しています。このタイプの構造の動機は何ですか?その利点は何ですか?(私は、エンジニアリングレベルの理由と個人的な好みのタイプの理由に最も懸念しています。)
Lakosの "Large-Scale C ++ Software Design"がそれを考慮に入れてくれることを期待していましたが、そうした場合は見逃しました。
2
謝罪。私は「ソース内ビルドで「x」を改善する」または「「y」を確実にするのに役立つ」または「自動テストで「z」を使用できる」を探しています。暴言ではありません。私は特にここで意見の戦争に参加したくありません!
—
DiB
ソース内ビルドは、前任者の怠惰に負う呪いです。彼らはすべて(ソース管理、クロスビルド、テキスト検索など)についてはひどいですが、裸のmakefileを使用して非常に簡単に作成できます。申し訳ありませんが、これは暴言でした。しかし、客観的なもの。
「インソース」ビルドとはどういう意味ですか?のようなもの
—
ドクブラウン
/project/src/bin/release
、または本当にすべての中間ファイルと出力ファイル/project/src
?12個以上のソースファイルがある場合、後者は実際に混乱する可能性があり、前者は問題ありません。
@Tibo、それはメイクファイルで信じられないほど簡単なだけでなく、ほとんどのIDEでもデフォルトになっているようです(少なくとも数年前にチェックしたとき)。
—
Bart van Ingen Schenau
@BartvanIngenSchenau本当に?この場合、どのIDEを使用していますか?Qtはこれを実行しません。実際、ビルドはソースから可能な限り離れているようです。Eclipseはこれを実行しません。Clionがこれを実行していると主張するかもしれませんが、これは
—
2018
main.cpp
最初はプロジェクトのトップレベルにありますが、ソースから離れた別のcmakeビルドディレクトリがそのトップレベルに作成されます。この点でもMSVSはClionに似ていると思います。