동적 라이브러리에 이미 존재하는 함수의 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);
}
에서
.
#include <stdio.h>
#include "calc_mean.h"
int mean(int a, int b) {
return (a+b)/2;
}
평균 함수의 정의는 이미 공유 라이브러리 libmean.so
존재한다. 그러나 컴파일하는 동안 나는 재정의 오류를 보지 못하고 컴파일은 성공적이다.
o/p는 4 대신 0이되므로 공유 라이브러리 내부의 mean의 함수 정의는 실행되지 않지만 주 모듈 내부의 함수 정의가 실행됩니다.
왜 이런 일이 발생합니까?
왜 오류가 발생 했습니까? –
항상 공유 lib 함수를 다시 사용할 수 있습니다. 소스 코드는 컴파일시 prio입니다. – Yann
하지만 함수의 정의가 이미 공유 라이브러리에 있고 공유 라이브러리와 함께 주 프로그램을 연결하고 있습니다. 따라서 라이브러리에 이미 정의 된 함수를 다시 정의하면 오류가 발생합니다. –