>  기사  >  운영 및 유지보수  >  Linux 환경에서 C 프로그램을 어떻게 컴파일하고 실행하나요? (상해)

Linux 환경에서 C 프로그램을 어떻게 컴파일하고 실행하나요? (상해)

青灯夜游
青灯夜游앞으로
2018-10-25 16:47:564717검색

이 글의 내용은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제