
전체 Clang, libc++ 및 LLVM을 기본 글로벌 툴체인으로 설정하는 가장 쉬운 방법은 무엇입니까? 내가 생각할 수 있는 대부분의 구성에서 이를 빌드하려는 모든 시도는 Clang을 작동시키는 결과를 가져왔지만 libc++ 헤더를 사용하지 않았지만 기본 GCC의 libstd++ 헤더를 사용하여 호환되지 않는 라이브러리 코드 조각에서 수많은 오류가 발생했습니다.
.bashrc
마술을 부리 거나 모든 것을 컴파일러와 링커에 -stdlib=libc++
전달 하지 않고도 즉시 작동하고 싶습니다 .-lc++
답변1
LLVM과 Clang이 FreeBSD 기반에 어떻게 통합되었는지 판단해 보면 Clang의 내부를 해킹하여 lib/Frontend/InitHeaderSearch.cpp
시스템의 라이브러리 및 헤더 경로( )를 설정해야 할 것 같습니다.
libc++를 기본값으로 사용하려면 코드를 변경해야 합니다( lib/Frontend/CompilerInvocation.cpp
"UseLibcxx"에 대한 grep). -lstdc++
로 변경하려면 시스템 링커도 해킹해야 할 수도 있습니다 -lc++
.
개인적으로 저는 별다른 번거로움 없이 동일한 결과를 얻으려면 CC, CXX, CFLAGS, CXXFLAGS 및 기타 변수를 설정하는 것이 좋습니다. FreeBSD에서는 완벽하게 작동합니다.