2016-07-23 57 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

相关问题