이 정적 C 라이브러리 (libabc.a)는 C++ 프로그램에 연결됩니다.정적 라이브러리를 통해 호출 된 동일한 .c 파일에 정의 된 함수에 대한 정의되지 않은 참조
내 qmake 파일에서 LIBS += pathToLib/libabc.a
정적 라이브러리를 만들 때 아무런 문제가 없었습니다. 컴파일하고 CPP 응용 프로그램을 실행 qmake를하고 gmake를 사용하는 경우 , 다른 CPP 파일의 오브젝트 파일이 생성 그러나 나는 다음과 같은 오류 얻을 수 있습니다 :
mdl.c에서 ../abc/libabc.a(mdl.o): In function 'SetExt': abc/src/mdl.c:2186: undefined reference to 'func1'
, 선언 및 정의 모두가를 .
static void func1 (int *, char *, char *);
정적 무효 FUNC1 (INT의 *의 m, 숯 * p를 숯 * s의)
{
.....
}
이 함수의 함수 호출은 C 파일 MDL에 .기음. 정적 라이브러리를 만들 때 실수를 했습니까 (gcc 및 ar 사용)? 또는, 나는 무엇을 놓치고 있냐?
@Incomputable extern은 보이지 않습니다. ma 그렇지 않아. 그것은 링커가 나중에 혼란 스러울 것임을 의미합니다. 나는 당신이 말해야하는 사람이 아니다. – UKMonkey
@UKMonkey, 정보 주셔서 감사합니다. 거기에 대해 읽을 리소스가 있습니까? – Incomputable
@Incomputable https://stackoverflow.com/questions/1041866/in-c-source-what-is-the-effect-of-extern-c – UKMonkey