2015-01-23 3 views
0

저는 목표 C를 처음 접했습니다. 이제 막 시작했습니다. 나는 객관적인 C 패키지를 다운로드하고 정확하게 "http://wiki.gnustep.org/index.php/GNUstep_under_Ubuntu_Linux"에서 모든 단계를 완료했습니다. 링크에 언급 된 코드도 컴파일했습니다. 그건 잘 작동합니다. 그러나 메시지를 인쇄하기 위해 아주 기본적인 프로그램을 작성했지만 컴파일 오류가 발생합니다.목표 C 우분투 컴파일 오류

/tmp/Chandan-59bf66.o : 기능 있음 main': /home/chandan/Documents/Chandan.m:6: undefined reference to NSLog ' clang : 오류 : 링커 명령이 종료 코드 1 (호출을 보려면 -v 사용)에 실패했습니다.

여기

#import <Foundation/Foundation.h> 

int main(int argc, const char *argv[]){ 

@autoreleasepool{ 
NSLog(@"Hello World"); 
} 
return 0; 
} 

나를 인도 해주십시오 내 코드입니다. 미리 감사드립니다.

+1

링커 오류입니다. 링커에 전달 된 플래그는 무엇입니까? – Mahesh

+0

안녕하세요, 제가 컴파일 한 방법입니다. gnustep-config --objc-flags'' gnustep-config --objc-libs' -fobjc-runtime = gnustep -fblocks -fobjc-arc -lobjc. – Chandan

+1

Foundation 프레임 워크 인'-framework Foundation'과 연결해야한다고 생각합니다. 그냥 우분투에 대한 경험이 없습니다. – KudoCC

답변

1

컴파일러에 플래그가 더 필요하다고 생각합니다. 여기 내거야 :

clang $1\ 
-MMD \ 
-MP \ 
-DGNUSTEP \ 
-DGNUSTEP_BASE_LIBRARY=1 \ 
-DGNU_RUNTIME=1 \ 
-DGNUSTEP_BASE_LIBRARY=1 \ 
-fno-strict-aliasing \ 
-fexceptions \ 
-fobjc-exceptions \ 
-D_NATIVE_OBJC_EXCEPTIONS \ 
-pthread \ 
-fPIC \ 
-Wall \ 
-DGSWARN \ 
-DGSDIAGNOSE \ 
-Wno-import \ 
-g \ 
-O2 \ 
-fgnu-runtime \ 
-fblocks \ 
-fobjc-nonfragile-abi \ 
-fconstant-string-class=NSConstantString \ 
-I . \ 
-I /GNUstep/System/Library/Headers/ \ 
-L /GNUstep/System/Library/Libraries/ \ 
-lobjc \ 
-lgnustep-base \ 
-lgnustep-gui \ 
-ldispatch 
+0

내 문제가 해결되었습니다. -lobjc 플래그를 추가해야합니다. 컴파일 문제가 해결되었습니다. 문제가 하나 더 생겼습니다. 그것은 호환성 문제입니다. 나는 그것을 직접 보게 될 것이다. 모두에게 감사합니다. – Chandan