본문 바로가기

C++/g++

컴파일 링커 옵션

[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 라이브러리 링킹 할 것을 명시하며
  • 해당 라이브러리를 현재 디렉터리에서 찾도록 알려준다.

'C++ > g++' 카테고리의 다른 글

정적 라이브러리 생성 및 링킹..  (0) 2024.10.15
정적 라이브러리 빌드  (0) 2023.07.05