2016-07-23 4 views
3

Visual C++では、関数、クラス、構造体などがソースファイルで実行されますが、ヘッダーファイル内の対応するプロトタイプでは実行されません関数、クラス、構造体などを使用するファイルは再コンパイルする必要がありますか?例えば関数の変更後のプロジェクトでのC++ソースファイルの再コンパイル

、私が最初にこのようなものがある場合:

//function.h 
int function(int x, int y); 

//function.cpp 
int function(int x, int y){ 
    return x+y; 
} 

//main.cpp 
#include function.h 

int main(){ 
    int x=3 
    int y=2 
    std::cout<<function(x, y); 
    return 0; 
} 

をそして私はこれにfunction.cppを変更します。

//function.cpp 
int function(int x, int y){ 
    return x*y; 
} 

私はmain.cppに再コンパイルする必要がありますか?

+1

それはどのように賢いビジュアルスタジオの依存関係管理があるかによって異なります。なぜあなたはそれを試してみませんか? –

+0

また、SCONS、Gradle et alもお試しください。 –

答えて

1

機能のABI (Application Binary Interface)が変更されていないため、メインを再コンパイルする必要はありません。しかし、再コンパイルされたfunction.cppに対してメインアプリケーションをlinkする必要があります。

+0

Visual Studioプロジェクトを持っていれば、プロジェクトを再コンパイルすると自動的にリンクされますか? – AlgorithmsX

+0

@AlgorithmsX通常はyesです。 –

+0

「ビルド」を行う限り、Visual Studioは自動的にどのファイルを(再)コンパイル/リンクする必要があるかを気にします。 "Rebuild"を実行した場合のみ、すべてのソースファイルが再コンパイルされます。 – mneutzner

関連する問題