2016-07-23 73 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等人。 –

回答

1

不,你不需要重新編譯main,因爲你的函數的ABI (Application Binary Interface)沒有改變。但是,您需要對主要應用程序link進行重新編譯的函數。

+0

因此,如果我只是有一個Visual Studio項目,它會自動鏈接他們,當我重新編譯項目? – AlgorithmsX

+0

@AlgorithmsX通常是。 –

+0

只要你做一個「構建」Visual Studio自動關心哪些文件需要(重新)編譯/鏈接。只有你做了「重建」,所有的源文件纔會重新編譯。 – mneutzner

相關問題