programing

Android 시스템에서 C/C++ 프로그램을 컴파일하여 실행하는 방법

css3 2023. 11. 6. 21:58

Android 시스템에서 C/C++ 프로그램을 컴파일하여 실행하는 방법

Q1) 안드로이드 에뮬레이터에서 간단한 c 프로그램을 실행하고 싶습니다.사용중입니다windows xp내 기계에 os가 있습니다.설치했습니다.sdk, jdk, eclipse안드로이드 개발용으로 AVD에서 안드로이드 애플리케이션을 실행하는 데 성공했습니다.

Q2) (Java 없이) C 프로그램을 실행할 수 있는 방법이 있는지 알고 싶습니다.AVD. 제 기계에 암을 설치하고 C 프로그램을 컴파일했습니다.

Q3) 컴파일된 바이너리를 안드로이드 기기로 푸시하는 것이 가능한지도 알고 싶습니다.AVDAndroid 장치의 단말기를 사용하여 실행하거나,AVD?

ARM 크로스 컴파일러로 C 프로그램을 컴파일할 수 있습니다.

arm-linux-gnueabi-gcc -static -march=armv7-a test.c -o test

그러면 컴파일된 이진 파일을 어딘가로 밀어 넣을 수 있습니다(SD 카드에 넣지 마십시오).

adb push test /data/local/tmp/test

NDK를 성공적으로 설치한 경우 샘플 애플리케이션부터 시작합니다.

http://developer.android.com/sdk/ndk/overview.html#samples

만약 당신이 이것의 다른 방법에 관심이 있다면 이것이 도움이 되기를 바랍니다.

http://shareprogrammingtips.blogspot.com/2018/07/cross-compile-cc-based-programs-and-run.html

컴파일된 바이너리를 안드로이드 기기나 AVD에 밀어넣고 안드로이드 기기나 AVD의 단말기를 이용하여 실행할 수 있는지도 알고 싶습니다.

여기서 NestedVM을 볼 수 있습니다.

NestedVM은 Java Bytecode에 대한 이진 변환을 제공합니다.이것은 GCC가 MIPS 바이너리로 컴파일하게 하고 그 후 자바 클래스 파일로 변환하게 함으로써 수행됩니다.따라서 C, C++, Fortran 또는 GCC가 지원하는 기타 언어로 작성된 모든 애플리케이션은 소스 변경 없이 100% 순수 Java로 실행할 수 있습니다.


예: Hello world C 프로그램을 교차 컴파일하여 안드로이드에서 실행합니다.

네이티브 개발 키트를 다운로드해야 합니다.

#include <stdio.h>

int main() {
    int rows, i, j;
    
    // Read the number of rows from the user
    printf("Enter the number of rows: ");
    scanf("%d", &rows);
    
    // Pattern 1
    printf("\nPattern 1:\n");
    for (i = 1; i <= rows; i++) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    // Pattern 2
    printf("\nPattern 2:\n");
    for (i = rows; i >= 1; i--) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    // Pattern 3
    printf("\nPattern 3:\n");
    for (i = rows; i >= 1; i--) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    // Pattern 4
    printf("\nPattern 4:\n");
    for (i = 1; i <= rows; i++) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    // Pattern 5
    printf("\nPattern 5:\n");
    for (i = 1; i <= rows; i++) {
        if (i % 2 != 0) {
            for (j = 1; j <= rows; j++) {
                printf("*");
            }
        } else {
            printf("*");
        }
        printf("\n");
    }
    
    // Pattern 6
    printf("\nPattern 6:\n");
    for (i = 1; i <= rows; i++) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        for (j = 1; j <= rows - i; j++) {
            printf(" ");
        }
        for (j = 1; j <= rows - i; j++) {
            printf(" ");
        }
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    // Pattern 7
    printf("\nPattern 7:\n");
    for (i = rows; i >= 1; i--) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    // Pattern 8
    printf("\nPattern 8:\n");
    for (i = 1; i <= rows; i++) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        for (j = 1; j <= rows - i; j++) {
            printf(" ");
        }
        for (j = 1; j <= rows - i; j++) {
            printf(" ");
        }
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    return 0;
}

언급URL : https://stackoverflow.com/questions/8698798/how-to-compile-and-run-a-c-c-program-on-the-android-system