Program Tip

libc ++ 또는 libstdc ++를 사용해야합니까?

programtip 2020. 10. 10. 10:52
반응형

libc ++ 또는 libstdc ++를 사용해야합니까?


c / c ++를 사용하여 osx 및 linux 용 명령 줄 인터페이스 실행 파일을 개발 중입니다. 프로젝트는 opencv에 링크됩니다. libc ++ 또는 libstdc ++를 사용해야합니까?


각 OS에 대해 기본 라이브러리, 즉 GNU / Linux의 libstdc ++와 Mac OS X의 libc ++를 사용합니다.

libc ++는 GNU / Linux에서 100 % 완전하지 않으며 libstdc ++가 더 완전 할 때이를 사용하는 것이 실질적인 이점이 없습니다. 또한 C ++로 작성된 다른 라이브러리에 연결하려는 경우 거의 확실하게 libstdc ++로 빌드되었으므로 사용하려면 해당 라이브러리와 연결해야합니다.

다양한 플랫폼에서 libc ++의 완전성에 대한 자세한 정보는 여기 에 있습니다.


주요 Linux 배포판은 다음과 같은 이유로 LLVM libc ++를 제공하지 않습니다.

  1. Apple 및 FreeBSD와 달리 GPL + 3는 문제가되지 않으므로 여기에서 다른 스택을 구현할 필요가 없습니다.
  2. Linux 구성 요소는 오랫동안 GNU libstd ++를 중심으로 개발되었습니다. 그들 중 일부는 다른 것을 기반으로하지 않습니다.
  3. libc ++는 새로운 기능에 강하지 만 레거시 코드에는 몇 가지 문제가 있습니다.

결국 libc ++가 배포판의 일부가되면 선택적 구성 요소가됩니다. 그것에 대한 링크는 아마도 추가 옵션이 필요할 것입니다.

Jonathan이 말했듯이 기본적으로 포함 된 도구를 사용해야합니다. Clang은 GCC 대체물로 구성되어 있으므로 Linux에서 사용하기에 안전하므로 2 개의 컴파일러에 대해 걱정할 필요가 없습니다. 또한 두 개의 플랫폼을 대상으로하므로 cmake를 살펴보아야합니다.


libc ++에는 템플릿 오류에 대해 사람이 읽을 수있는 오류 메시지가 더 많다고합니다.

참고 URL : https://stackoverflow.com/questions/14972425/should-i-use-libc-or-libstdc

반응형