Android 시스템에서 C/C++ 프로그램을 컴파일하여 실행하는 방법
Q1) 안드로이드 에뮬레이터에서 간단한 c 프로그램을 실행하고 싶습니다.사용중입니다windows xp
내 기계에 os가 있습니다.설치했습니다.sdk, jdk, eclipse
안드로이드 개발용으로 AVD에서 안드로이드 애플리케이션을 실행하는 데 성공했습니다.
Q2) (Java 없이) C 프로그램을 실행할 수 있는 방법이 있는지 알고 싶습니다.AVD
. 제 기계에 암을 설치하고 C 프로그램을 컴파일했습니다.
Q3) 컴파일된 바이너리를 안드로이드 기기로 푸시하는 것이 가능한지도 알고 싶습니다.AVD
Android 장치의 단말기를 사용하여 실행하거나,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
'programing' 카테고리의 다른 글
쿼리 인덱스를 최적화하는 이상한 동작(MariaDB + InnoDB) (0) | 2023.11.06 |
---|---|
SQL: '좋아요' 함수의 결과에 따라 '그룹화'가 가능합니까? (0) | 2023.11.06 |
jQuery의 부모에서 모든 자녀(어떤 수준이든)를 선택하는 방법? (0) | 2023.11.06 |
SQL 인젝션을 통해 사이트가 해킹당했습니다. (0) | 2023.11.06 |
설정 IF NULL 또는 기타 값의 MySQL Update 필드 (0) | 2023.11.06 |