4

私はLinuxでEclipseを使用してC++で作業しています。しかし、私もVisualStudioを使用しました。彼らはプロジェクトを再リンクするためのボタンを持っていません(または少なくとも私はそれを行う方法がわかりません)。

例:

私は数百cppの大きなプロジェクト(1)を持っています。そのプロジェクトは、小さなライブラリ(2)を使用してfooを実行します。fooの動作を変更してコンパイルし、ライブラリを生成する場合は、外部ライブラリ(2)をリンクして機能する大きなプロジェクト(1)をクリーンアップし、再コンパイルする必要があります。

問題は、大きなプロジェクトが変わらないことですが、数百cppsの場合、コンパイル時間は約5分です。5分は、2番目のライブラリの小さな変更です。

この問題を回避することは可能ですか?

前もって感謝します

4

3 に答える 3

5

私は推測していますが、それは単なる推測です。あなたのプロジェクトには、プロジェクト内の foo ライブラリと他の成果物との間の依存関係がありません。

このように、foo を変更すると、コンパイラは、プロジェクトの残りの部分を再コンパイルする必要があることを (foo の変更によって必要な分だけ) 認識しないため、手動でクリーンアップして再構築する必要があります。

通常、依存関係はコンパイラ固有の高度な方法で指定されます。SOからのこの他の投稿が役立つか、単に「eclipse c++ 依存関係管理」をグーグルで検索できます。

于 2012-09-18T08:17:49.673 に答える
3

通常、これmakeには amakefileを使用します。

この方法を使用すると、再リンクだけが必要な場合に大量のソース ファイルのコンパイルをバイパスするなど、コードをビルドするための独自のルールを生成できます。

たとえば、makefile次のようになります。

prog: main.o other.o makefile
    gcc -o prog main.o other.o

main.o: main.c makefile
    gcc -c -o main.o main.c

other.o: other.c makefile
    gcc -c -o other.o other.c

変更しmain.cたファイルがother.c. 単純にコンパイルother.cして makeother.oし、リンクother.oしてmain.o一緒に create しますprog

これは、「コマンドライン」の世界で一般的に行われている方法です。また、多くの IDE のカーテンの後ろで、あなたから隠されている方法でもある可能性があります。

調べる必要があるのは、依存関係のチェックが期待どおりに機能しない理由です。プロジェクトがどのように設定されているかについての詳細情報がなければ、決定的なものにするのは少し難しいです.

于 2012-09-18T08:17:46.613 に答える