Abh*_*hya 4 c linker-errors duplicate-symbol
Wy重新定义动态库中已存在的函数不会抛出任何编译和链接错误?
在下面的功能
#include "calc_mean.h"
#include <stdio.h>
int mean(int t, int v) {
return 0;
}
int main () {
int theMean = mean(3,6);
printf("\n %d\n",theMean);
}
Run Code Online (Sandbox Code Playgroud)
共享库内部平均功能的定义已经如下所示.
#include <stdio.h>
#include "calc_mean.h"
int mean(int a, int b) {
return (a+b)/2;
}
Run Code Online (Sandbox Code Playgroud)
均值函数的定义已存在于共享库中libmean.so.但在编译期间,我没有看到任何重定义错误,编译成功.
并且在成功执行时,我看到的o/p是0而不是4,因此共享库中的mean的函数定义没有被执行,而主模块中的函数定义正在执行.
为什么会这样呢?