문제

현재 Linux 및 UCLIBC에서 C를 사용하는 임베디드 프로젝트를 진행하고 있습니다. 우리는 그것을 C ++로 옮기는 데 관심이 있지만 libstdc ++의 연결과 관련된 오버 헤드를 원하지 않습니다. 내 인상은 ioStream 또는 벡터와 같은 STL에서 아무것도 사용하지 않는다면 이것이 가능하다는 것입니다.

libstdc ++에 연결하지 않고 G ++가 어떻게 컴파일 하는가?

도움이 되었습니까?

해결책

컴파일 할 때 사용하십시오 g++ -c 컴파일합니다. 그런 다음 링크를 위해 사용하십시오 ld 대신에 g++. 그러나 링커를 직접 호출하므로 명령 줄 (LIBC 및 LIBCRT 포함)에서 모든 라이브러리를 지정해야합니다.

또는 G ++를 "더 나은 C"로 사용하는 경우 사용할 수 있습니다. gcc 최종 링크 단계 (LIBC를 자동으로 포함 함)의 경우

다른 팁

당신은 사용할 수 있습니다

g++ -nodefaultlibs -fno-exceptions a.cc

그러나 이런 식으로 모든 C ++ 기능을 사용할 수는 없습니다 ...

완전성과 정확성을 위해 :

g++ -c -fno-exceptions a.cpp
gcc a.o -o a
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top