Linux 에서 g++정적 라 이브 러 리 와 동적 라 이브 러 리 를 컴 파일 하고 사용 하 는 방법
2936 단어 linux컴 파일정적 라 이브 러 리동적 라 이브 러 리
다음은 Liux 에서 정적 라 이브 러 리 와 동적 라 이브 러 리 를 생 성하 고 사용 하 는 방법 을 요약 합 니 다.(C+프로젝트 이기 때문에 컴 파일 러 가 사용 하 는 g+이지 만 gcc 의 사용 과 통 합 됩 니 다)
우선 준비 작업 입 니 다.라 이브 러 리 파일 로 봉 인 된 함수 의 헤더 파일 과 원본 파일 을 작성 하 십시오.다음 과 같 습 니 다.
//myAPI.h
int ADD(int a, int b);
int MINUS(int a, int b);
//myAPI.cpp
#include "myAPI.h"
int ADD(int a, int b){
return a + b;
}
int MINUS(int a, int b){
return a - b;
}
다음은 테스트 용 주 함수 원본 파일 을 준비 합 니 다:
//main.cpp
#include "myAPI.h"
#include <iostream>
int main(){
std::cout << "1 + 1 = " << ADD(1, 1) << std::endl;
std::cout << "1 - 1 = " << MINUS(1, 1) << std::endl;
return 0;
}
마지막 으로 my API.cpp 파일 을 컴 파일 하여 my API.o 대상 파일 을 만 듭 니 다.
g++ -c myAPI.cpp
1.정적 라 이브 러 리 생 성 및 사용Linux 에서 정적 라 이브 러 리 를 생 성 하 는 명령 ar 로 my API.o 파일 을 처리 하여 정적 라 이브 러 리 파일 을 생 성 합 니 다.생 성 된 라 이브 러 리 파일 은 규범 에 따라 야 하고 Liux 하 라 이브 러 리 파일 에"lib"접 두 사 를 붙 여야 합 니 다.따라서 이 예 에 대해 다음 명령 을 통 해 libmy API.a 정적 라 이브 러 리 를 생 성 할 수 있 습 니 다.
ar crv libmyAPI.a myAPI.o
다음은 프로젝트 컴 파일 과정 에서 정적 라 이브 러 리 를 이용 할 수 있 습 니 다.이 때 my API.cpp 라 이브 러 리 함수 의 정의 파일 은 필요 없습니다.main.cpp 컴 파일 명령 은 다음 과 같 습 니 다.(의존 하 는 정적 라 이브 러 리 파일 은 의존 하 는 항목 뒤에 두 어야 합 니 다)
g++ main.cpp libmyAPI.a -o output
컴 파일 을 통과 하면 실행 가능 한 파일 output 를 실행 할 수 있 습 니 다.이 때 libmy API.a 도 필요 하지 않 습 니 다.명령 을 실행 하고 출력 결 과 는 다음 과 같 습 니 다.
./output
2.동적 라 이브 러 리 생 성 및 사용
Liux 에서 컴 파일 할 때-shared 인 자 를 통 해 동적 라 이브 러 리(.so)파일 을 생 성 할 수 있 습 니 다.다음 과 같 습 니 다.
g++ -shared -fPIC -o libmyAPI.so myAPI.o
생 성 된 동적 라 이브 러 리 는 컴 파일 할 때 설명 이 필요 하고 실행 할 때 의존 해 야 합 니 다.성명 은 아래 와 같다.
g++ main.cpp -L. -lmyAPI -o output
"-L."표 시 는 G+함수 라 이브 러 리 가 현재 디 렉 터 리 에 있 을 수 있 음 을 알려 줍 니 다."-lmyaPI"표 시 를 사용 하여 G+드라이버 가 연결 단계 에서 공유 함수 라 이브 러 리 libmyAPI 를 참조 하 는 것 을 알려 줍 니 다.so.사용 시 다음 과 같은 오류 가 발생 하면 libmyAPI.so 를/usr/lib 디 렉 터 리 로 이동 하면 됩 니 다.
./output
이상 의 리 눅 스 에서 g++정적 라 이브 러 리 와 동적 라 이브 러 리 를 컴 파일 하고 사용 하 는 방법 은 바로 작은 컴 파일 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.