C / c ++ kullanarak hem osx hem de linux için komut satırı arabirimi çalıştırılabilir dosyaları geliştiriyorum. Proje, opencv ile bağlantı kuracak. Libc ++ veya libstdc ++ kullanmalı mıyım?
C / c ++ kullanarak hem osx hem de linux için komut satırı arabirimi çalıştırılabilir dosyaları geliştiriyorum. Proje, opencv ile bağlantı kuracak. Libc ++ veya libstdc ++ kullanmalı mıyım?
Yanıtlar:
Her işletim sistemi için yerel kitaplığı, yani GNU / Linux'ta libstdc ++ ve Mac OS X'te libc ++ kullanırdım.
libc ++, GNU / Linux üzerinde% 100 tamamlanmış değildir ve libstdc ++ daha tamamlandığında onu kullanmanın gerçek bir avantajı yoktur. Ayrıca, C ++ ile yazılmış diğer kitaplıklara bağlanmak istiyorsanız, bunlar neredeyse kesinlikle libstdc ++ ile oluşturulmuş olacaktır, bu yüzden onları kullanmak için onunla da bağlantı kurmanız gerekir.
Çeşitli platformlarda libc ++ tamlığı hakkında daha fazla bilgi burada .
std::ctype_base::mask
değerlerden <ctype.h>
sabitlere eşleme tamamen platforma bağlıdır. (CPU iç bilgileri derleyici tarafından sağlanır, istisna işleme düşük seviyeli bir ABI katmanı tarafından yapılır, ancak GÇ genellikle tamamen C ++ ve C kitaplıklarında yapılır, düşük seviyeli şeyler değil).
Başlıca Linux dağıtımları LLVM libc ++ sağlamaz çünkü:
Sonunda libc ++ dağıtımların bir parçası olduysa, isteğe bağlı bir bileşen olacaktır. buna karşı bağlantı kurmak muhtemelen ekstra seçenekler gerektirecektir.
Jonathan'ın dediği gibi, varsayılan olarak dahil edilen aracı kullanmalısınız. Clang, bir GCC ikamesi olarak yapılandırıldığı için Linux'ta güvenlidir, bu nedenle 2 derleyici için endişelenmenize gerek yoktur. Ayrıca iki platformu hedeflediğiniz için cmake'ye bir göz atmalısınız.