SO 생성

4e5ung·2021년 5월 12일
0

SO 생성

MakeFile

g++ [옵션]

전처리기(cpp0) 옵션

명령어설명
-I헤더 파일을 디렉토리 지정
-L라이브러리 디렉토리 지정
--includes소스 파일 지정

라이브러리 지정 옵션

명령어설명
-static정적 라이브러리 링크
-shared공유 라이브러리 링크, 존재하지 않으면 정적 라이브러리 링크

최적화 옵션

최적화 레벨이 올라갈 수록 컴파일 실행 시간 및 메모리 소비율 증가

명령어설명
-O0최적화를 수행하지 않음
-O, -O1코드 크기와 실행 시간 감소 이외의 최적화 X
-O2메모리, 속도를 희생하지 않는 범위 내의 최적화(loop unrolling, function inlining x)
-O3-O2, 인라인 함수와 레지스터 최적화

경고 옵션

명령어설명
-Wall모든 오류와 경고를 출력
-w모든 경고 메시지를 무시
-Werror모든 경고를 오류로 취급

기타

명령어설명
-fPIC코드의 배치를 지정, 공용 라이브러리를 만들 때 주로 사용되며, 바이너리의 크기는 증가하지만 코드의 동작을 빠르게 함

예)

all:
 g++ -O3 -Wall -shared -std=c++11 -I../include  
 -fPIC `python3.6 -m pybind11 --includes` bind_py.cpp ../interFace.h 
 -L../lib -o lang_py`python3.6-config --extension-suffix`

0개의 댓글