最近想到,如果c++的源文件与库文件包含相同函数,并且在编译时同时编译源文件,链接到库文件。会发生什么情况
我的预测是会在链接阶段出现问题。如果两个文件包含相同符号定义,就相当于在两个源文件中重复定义
今天验证了一下,用静态库libaaa.lib。此静态库只包含一个函数
int max_number(int,int);
在调用此函数时,会返回参数中两个数中最大的那个。
建立一个测试项目,将静态库加入项目
在项目中增加一个源文件a.cpp,在其中实现此函数,此函数与库文件中的函数参数,名字,返回值都一样,唯一不同的是,在调用的时候会输出"cpp processing",作为区分
a.cpp
//cpp文件中定义的函数