[英]What does it mean for a program to link to both libstdc++ and libc++?
[英]What is libc++ and libstdc++
我有一些問題。
1) 什么是libc++
和libstdc++
?
2)它們之間有什么區別?
3)它們可以互換嗎?
4)它是編譯器應該實現的嗎?
5) 我什么時候應該使用一種或另一種?
1) 什么是 libc++ 和 libstdc++?
它們是C++ 標准庫的實現。
2)它們之間有什么區別?
它們是完全不同的實現。
3)它們可以互換嗎?
是的,您應該可以互換使用它們。 (但是你不能輕易地在同一個程序中使用兩者。)
5) 我什么時候應該使用一種或另一種?
你不應該擔心這個。 您的代碼應該適用於任何標准庫實現。
libstdc++ 是 GNU c++ 標准庫實現。
libc++ 是 LLVM/clang c++ 標准庫實現。
即使使用 clang 編譯時,也經常使用 libstdc++(在 Linux 上)。
libc++ 存在的一個主要原因是 libstdc++ 是 GPL,因此 Apple 無法發布它,因此您可以將 libc++ 視為非 GPL libstdc++。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.