[英]Enable libc++/libcxx by default when using clang++
Clang的CMake構建系統學習了CLANG_DEFAULT_CXX_STDLIB
來設置默認的C ++標准庫。
但是,我不知道這個解決方案對你來說是多么切實可行,因為你必須使用樹頂的構建,直到下一個clang / llvm發布。
我有三種方法可以做到這一點。 第一個是使用Unix makefile的單個項目,第二個項目將根據需要提供多個項目,但需要編輯任意數量的文件以服務於任意數量的用戶,第三個項目將適用於任意數量的項目或用戶。 您可能希望跳到第三個選項,但其余的則適用於需要相似的其他人。
一個好方法是使用makefile。 這將使您只需鍵入make
即可構建項目。 如果您使用* nix,則不需要安裝,大多數系統都附帶它。 這是一個示例makefile,用於執行您要求的內容(只需將<progname>
替換為您的程序名稱,將<filename>
替換為源文件名)。 只需將其粘貼到與源文件相同的目錄中名為“makefile”的文件中即可。
FLAGS=-stdlib=libc++ -Wl,-rpath,/path/to/libcxx/lib all: <progname> progname: clang++ $FLAGS progname
免責聲明:我不使用clang ++,因此這可能是一個不完整的調用。 例如,在gcc中,您還需要指定-o outfile_name
。
或者(因為我剛剛閱讀了注釋),您可以運行以下命令(假設您使用bash):
echo 'alias stdclang="clang++ -stdlib=libc++ -Wl,-rpath,/path/to/libcxx/lib"' >> ~/.bashrc
從那時起,只需輸入stdclang <progname>
就可以構建libc ++庫
我能想到的最后一件事情與上一件事類似,但更具永久性。 以root touch /usr/bin/stdclang && chmod a+x /usr/bin/stdclang
運行以下命令: touch /usr/bin/stdclang && chmod a+x /usr/bin/stdclang
然后使用您想要的任何編輯器編輯文件/usr/bin/stdclang
並添加以下行:
#!/bin/bash clang++ -stdlib=libc++ -Wl,-rpath,/path/to/libcxx/lib $@
然后你可以運行stdclang <other_args>
讓它自動擴展為clang++ -stdlib=libc++ -Wl,-rpath,/path/to/libcxx/lib <other_args>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.