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

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

青灯夜游
풀어 주다: 2018-10-25 16:47:56
앞으로
4832명이 탐색했습니다.

이 글의 내용은 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿