C++/g++
컴파일 링커 옵션
jdaemanv2
2023. 4. 17. 22:41
[1. 개요]
g++ 로 컴파일 시, 링킹 시 유용한 옵션 정리
[2.1 예제]
스택 사이즈 변경
- g++ -Wl,--stack,1677216 test.cpp
- 함수 호출 시, 이 함수 내 지역에 선언한 buf 의 크기가 꽤 큰 경우,
- 함수 호출 시, 바로 segmentation fault 가 발생할 수 있다.
- 함수 호출을 위해, 컴파일 시, 일정 크기의 스택에 모든 지역 변수를 저장 할 수 있어야 하는데,
- buf 크기가 이 크기를 벗어나서 문제가 된 것이다.
- 이 경우 디폴트 스택 크기를 꽤 크게 잡아주면 runtime 오류를 해결 할 수 있다.
[2.2 예제]
외부 라이브러리 링킹
- g++ main.cpp -lrdkafka++ -L"./"
- rdkafka 를 사용하는 c++ 코드 컴파일 시, rdfkafka 라이브러리 링킹 할 것을 명시하며
- 해당 라이브러리를 현재 디렉터리에서 찾도록 알려준다.