2010-06-17 5 views
4

iPhone 3.1.3 SDK를 사용하여 Xcode를 사용하여 iPhone에서 작동하는 표준 C 프로그램을 컴파일 할 수 있습니까? 나는 'hello world'를 컴파일하기 위해 xcode를 사용하려고하지만 아무 소용이 없다. 추가 신청서 템플릿을 받아야합니까, 아니면 그냥 누락 되었습니까?xcode 컴파일 콘솔 응용 프로그램 - C 프로그래밍

답변

2

NSApplicationMain과 코코아 프로그램을 시작하는 데 필요한 몇 가지 다른 구조를 사용하는 코코아 응용 프로그램에 보일러 플레이트 템플릿을 사용하는 경우 objective-c를 사용하지 않고도 C 메소드를 자유롭게 작성할 수 있습니다. Caveats :

1) xcode를 사용할 때 가장 좋은 방법은 새 프로젝트의 iphone 범주에서 제공되는 "Window 기반 응용 프로그램"템플릿으로 시작하는 것입니다. 그것은 UI가없는 최소한의 템플릿입니다 - 단지 창.

2) 아이폰에는 "main()"persay가 없습니다. 실제로 "[YourProjectName] AppDelegate.m"이 될 "AppDelegate.m"파일에 코드를 삽입해야합니다. 이것은 당신이 # import를 별도의 파일에 당신도 그 소스 파일에서 할, 또는 더 나은 할 수 있습니다 작성한 C 함수를 호출 할 수있는 좋은 장소입니다

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 
    //YOUR CODE GOES HERE 

    return YES; 
} 

: 여기에 내부 당신은 방법을 찾을 것입니다 . 모든 C 코드가 끝날 때까지 응용 프로그램이 차단됩니다.

3) printf가 없으므로 믿을 수 없습니다. 죄송합니다. 정보를 얻는 한 가지 방법은 NSLog를 사용하는 것입니다.하지만 C 문자열이 아닌 objective-c 문자열을 사용해야합니다. 따라서 C 프로그램에서 실제로 상태를보고 싶다면 약간의 목적 - c를 사용해야합니다. 문제의 라인은 다음과 같습니다 이것이 오브젝티브 C 문자열로 C 문자열을 변환합니다

char *your_char_pointer = //...gimme a string; 
NSLog([NSString stringWithCString:your_char_pointer]); 

는 NSLog 행복 (OSX에서 응용 프로그램의 유틸리티 폴더에있는 콘솔 응용 프로그램을 사용하여 본) 콘솔로 인쇄됩니다 .

좋습니다.

0

iPhone이 콘솔 응용 프로그램을 공식적으로 지원하지 않습니다.

0

아마도 이것이 확실한 답변 일 것이라고 확신하지만, 내 생각에 'iPhone 프로그래밍 : The Big Nerd Ranch Guide'를 확인하고 싶습니다. 나는이 책을 직접 다루었으며 훌륭한 자원이었다.

그리고 확실히 XCode를 사용하여 표준 C 프로그램을 컴파일하고 'Hello World'를 콘솔에 출력 할 수 있습니다. 그러나 iPhone/iPad/iPod Touch에서이 프로그램을 실행할지 여부는 언급하지 않았습니다.

코코아를 배우려하고 iPhone에서 반드시 실행하고 싶지 않은 경우 자매 책 'Mac® OS X (3 판) 용 코코아 프로그래밍'을 확인하십시오.

2

jailbroken iPhone이있는 경우 GCC 및 기타 요구 사항 (http://antirez.com/page/iphone-gcc-guide.html 참조)을 설치하십시오. 사용 터미널

gcc -c main.c -o hello.o 

ld hello.o -e _main -o Hello 

가 기억 컴파일하려면 gcc가

#include <stdio.h> 

int main(void) 
{ 
    printf("Hello World\n"); 
    return 0; 
} 

와 온 - 디바이스 코드를 컴파일, 컴파일 된 응용 프로그램은 기본 콘솔 응용 프로그램이며 만 터미널에서 실행할 수 있도록 UI를 지원하지 않습니다.

관련 문제