이 글의 내용은 Linux 환경에서 C 프로그램을 컴파일하고 실행하는 방법을 소개하는 것인가요? (상해). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
1 단일 파일의 컴파일 및 실행
다음 내용으로 main.c 파일을 생성합니다.
#include <stdio.h>#include <stdlib.h>int main(void){ printf("Hello world!\n");return 0; };
컴파일:
gcc -o main main.o
실행:
root@ubuntu:/ybg/python# ./main Input an integer:10sum=55
2 여러 파일의 컴파일 및 실행
sum 생성 .c 파일의 내용은 다음과 같습니다.
#include <stdio.h>#include <stdlib.h>int sum(int x){int i, result=0;for(i=0; i<=x; i++){ result+=i; }if(x > 100) exit(-1);return result; };
main.c 파일을 생성합니다. 내용은 다음과 같습니다.
#include <stdio.h>#include <stdlib.h>int main(void){int x; printf("Input an integer:\n"); scanf("%d", &x); printf("sum=%d\n", sum(x));return 0; };
gcc -c sum.c -fPIC -o sum.ogcc -c main.c -fPIC -o main.o
를 컴파일하여 실행 파일을 생성합니다. 파일 이름은 main
gcc -o main sum.o main.o
실행 프로그램
입니다../main
실행 결과는 위와 같습니다
3 Dynamics 사용 링크 라이브러리 메소드
는 동적 링크 라이브러리
gcc sum.o -shared -o sum.so
를 생성하고 파일 이름은 main
gcc -o main sum.o main.o
Execute
./main
If입니다. 다음 오류가 있습니다. 이는 방금 생성된 합계가 기본 동적 링크 라이브러리 경로에서 찾을 수 없음을 의미합니다. so
./main: 공유 라이브러리를 로드하는 동안 오류가 발생했습니다. sum.so: 공유 개체 파일을 열 수 없습니다: 해당 파일이 없습니다. 또는 디렉토리
다음 명령을 실행하여 현재 디렉토리를 동적 링크 라이브러리 검색 경로 환경 변수
export LD_LIBRARY_PATH=pwd:$LD_LIBRARY_PATH
에 추가합니다. 다시 실행
./main
실행 결과는 위와 같습니다
4 Python이 .so 동적 링크 라이브러리를 호출합니다.
다음 콘텐츠로 test.py 파일을 생성합니다.
import ctypes so = ctypes.CDLL('./sum.so')print "so.sum(50) = %d" % so.sum(50)
Execute
root@ubuntu:/ybg/python# python test.py so.sum(50) = 1275
위 내용은 Linux 환경에서 C 프로그램을 어떻게 컴파일하고 실행하나요? (상해)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!