gcc 옵션 의미
GCC 옵션 -Wl,-soname
https://blog.csdn.net/gohome520/article/details/7259450
gcc 지정 프로그램 실행 시 라이브러리 검색 경로 추가 포함
gcc main.c -g -o main -lget -L./ -Wl,-rpath=/home/Panodic/zengzhihao/work_place/get
'-L./'는 컴파일 링크가 정확함을 보장하지만, 실행할 때 라이브러리 경로를 찾을 수 있도록 보장하지 않습니다.'-Wl, -rpath'지정한 프로그램이 실행될 때 검색하는 라이브러리 경로는 이 위치를 포함합니다.
Makefile 예
all:
#gcc -g -fPIC -shared -o libget.so.1.2 get.c -Wl,-soname,libget.so.1
#gcc -g -fPIC -shared -o libget.so get.c
#gcc main.c -g -o main -lget -L./
#aarch64-linux-gnu-gcc -g -fPIC -shared -o libget.so.1.2 get.c -Wl,-soname,libget.so.1
aarch64-linux-gnu-gcc -g -fPIC -shared -o libget.so.1.2 get.c -Wl,-soname,libget.so.1,-rpath=/mnt/tmp
#create libget.so.1->libget.so.1.2
ldconfig -n ./
-ln -s ./libget.so.1.2 ./libget.so
aarch64-linux-gnu-gcc main.c -g -o main -lget -L./ -Wl,-rpath=/mnt/tmp/get
aarch64-linux-gnu-readelf -d libget.so.1.2
Dynamic section at offset 0x870 contains 26 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname: [libget.so.1]
0x000000000000000f (RPATH) Library rpath: [/mnt/tmp]
두 버전 모두 존재하는 Makefile
all:
aarch64-linux-gnu-gcc -g -fPIC -shared -o libget.so.1.0 get1.c -Wl,-soname,libget.so.1,-rpath=/mnt/tmp/get
aarch64-linux-gnu-gcc -g -fPIC -shared -o libget.so.2.0 get2.c -Wl,-soname,libget.so.2,-rpath=/mnt/tmp/get
#create libget.so.1->libget.so.1.0
#create libget.so.2->libget.so.2.0
ldconfig -n ./
#version 1
-ln -s ./libget.so.1.0 ./libget.so
aarch64-linux-gnu-gcc main.c -g -o main1 -lget -L./ -Wl,-rpath=/mnt/tmp/get
rm ./libget.so
-ln -s ./libget.so.2.0 ./libget.so
aarch64-linux-gnu-gcc main.c -g -o main2 -lget -L./ -Wl,-rpath=/mnt/tmp/get
aarch64-linux-gnu-readelf -d main1
0x0000000000000001 (NEEDED) Shared library: [libget.so.1]
aarch64-linux-gnu-readelf -d main2
0x0000000000000001 (NEEDED) Shared library: [libget.so.2]
,
CC=
--prefix=
LDFLAGS=-L
CPPFLAGS=-I
( -I, -L, -l)
CFLAGS C , , CFLAGS+=-I/usr/include -I/path/include
LDFLAGS gcc , , LDFLAGS+=-L/usr/lib -L./
LIBS , LIBS+=-lpthread -lglib2
CXXFLAGS C++
gcc main.c -g -o main -lget -L./ -Wl,-rpath=/home/Panodic/zengzhihao/work_place/get
"-L./" ,
"-Wl,-rpath" ,
--enable-shared
--disable-shared
--enable-static
--disable-static
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
gcc 옵션 의미텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.