누군가 나에게 설명 할 수 있습니까? 다음과 같이링커가 정의되지 않은 함수 참조를 말합니다.
파일 A는 : fun1에 정의되지 않은 참조 :
file b.c
static int fun1();
int fun1(){
printf("fron fun1");
return 0;
}
내 코드를 컴파일하려고하면 컴파일러가 오류를 제공합니다
file a.c
#include <stdio.h>
#include <stdlib.h>
int fun1();
int main()
{
fun1();
return 0;
}
파일 B는 다음과 같이 기록됩니다. 파일 b.c에서 fun1 정적을 선언하면 무엇을 의미합니까?
'static '은 함수의 범위가 여러분이 선언 한 모듈 (file)로 제한된다는 것을 의미하므로'b.c' 파일에서'static' 선언을 제거해야합니다. 'b.c'에있는'static' 선언으로'fun1'는'a.c'에 접근 할 수 없습니다. – lurker
링커 오류가 아닌 컴파일러 오류입니까? – Dabbler
컴파일하는 데 사용하는 명령 줄을 게시하십시오. @Dabbler가 말한 것처럼 당신은 아마도 링커 오류를보고있을 것입니다. –