32 또는 64bit로 compile (-m32 / -m64)
[문법]
gcc -m32 -o 64bit_example example.c
gcc -m64 -o 32bit_example example.c
[설명]
gcc option에 -m32 또는 -m64 option 설정하여 compile 가능
표준 libc linking 하지 않고 코드 자체만 complie (-nostdlib)
[문법]
gcc -nostdlib -o example example.c
[설명]
Linker가 표준 system startup 파일들이나 lib들을 linking할 때 사용하지 않도록 하는 옵션이다.
아래와 같은 code compile이 가능해 진다.
int func(void)
{
return 0;
}
_start()
{
func();
__asm__("leave");
}
Debug 정보 포함시키기 (-g)
[문법]
gcc -g -o example example.c
[설명]
Compile된 프로그램에 Debug정보를 포함시킨다.
Linker에 option 전달하기 (-Wl)
[문법]
gcc -g -Wl,option -o example example.c
[설명]
옵션을 Linker에 전달합니다. 뒤에 쉼표( , ) 가 있다면 쉼표로 여러 옵션을 전달할 수 있다.
Linker에 obj 파일에 library 검색 디렉토리 경로 지정하기 (-Wl,-rpath,[path])
[문법]
gcc -g -Wl,-rpath,/home/mylib/libdir -o example example.c libdemo.so
[설명]
실행 프로그램의 실행 라이브러리 경로 목록에 /home/mylib/libdir(예시)를 Linker에 전달하여, 프로그램 실행 시점에 Linker가 공유 라이브러리 찾는데 도움을 준다. 즉 rpath는 실행 시 라이브러리를 찾을 경로 정보를 컴파일 시점에 추가하는 방법이다. 해당 경로는 LD_LIBRARY_PATH 환경 변수 전에 참고된다.
'Linux > Command & Tool' 카테고리의 다른 글
[apt] /etc/apt/source.list 내용 살펴보기 (0) | 2018.03.08 |
---|---|
[Cross compiler] arm-linux-gnueabi- / aarch64-linux-gnu- 설치 (0) | 2018.01.02 |
[NerdTree] 마우스 사용하기 (0) | 2017.12.18 |
ccat - colorizing cat, cat에 color를 입히다. (0) | 2017.12.15 |
[rpm] spec file (0) | 2017.11.22 |