[英]How to properly configure Clang?
我剛剛編譯了LLVM,Clang和libc ++的最新代表。 但是現在我不知道如何配置環境以使用它們。 我在$ PATH中添加了一個到已編譯的二進制文件中,並設置了
$ D_LIBRARY_PATH = $(llvm-config --libdir)
但是無論如何,當我用示例文件測試運行'clang'時,它使用了一些'/ usr / bin / ld'鏈接程序,我不知道它是什么(因為我已經卸載了'g ++',因為以為是問題所在(在“ clang'使用了一些鏈接程序,而我沒有其他C ++編譯器)。
那么,現在如何指出正確的“ llvm-ld”,libc ++包含和庫路徑? 我不想每次都傳遞一些復雜的論點。 也許我應該設置一些環境變量。
我也在使用具有相同效果的KDevelop。
如果這聽起來很愚蠢,請不要判斷我,但這是我第一次使用Linux(以前一直使用Windows)。 我正在使用最新的“ OpenSUSE”發行版。
更新-這是使用clang編譯器的CodeLite的輸出窗口:
/ bin / sh -c'make -j 2 -e -f Makefile'----------構建項目:[ClangTest-Debug] ---------- make [1]:輸入目錄'/ run / media / bs_ld / 8688602a-296d-40e1-bd37-c90e69f45769 / Workspace / CL_C ++ _ WP / ClangTest'clang ++ -c“ / run / media / bs_ld / 8688602a-296d-40e1-bd37-c90e69f45769 /工作區/CL_C++_WP/ClangTest/main.cpp“ -stdlib = libc ++ -o ./Debug/main.cpp.o -I。 -I / run / media / bs_ld / 8688602a-296d-40e1-bd37-c90e69f45769 / Build / include / c ++ / v1 / clang ++ -o ./Debug/ClangTest @“ ClangTest.txt” -L。 -L / run / media / bs_ld / 8688602a-296d-40e1-bd37-c90e69f45769 / Build / lib / / usr / bin / ld:找不到crtbegin.o:找不到這樣的文件或目錄/ usr / bin / ld:找不到-lstdc ++ / usr / bin / ld:找不到-lgcc_s / usr / bin / ld:找不到-lgcc clang-3.7:錯誤:鏈接器命令失敗,退出代碼為1(使用-v查看調用)ClangTest.mk:76 :目標'Debug / ClangTest'的配方失敗make [1]: * [Debug / ClangTest]錯誤1 make [1]:離開目錄'/ run / media / bs_ld / 8688602a-296d-40e1-bd37-c90e69f45769 / Workspace / CL_C ++ _ WP / ClangTest'Makefile:4:目標“ All”的配方失敗:* [All]錯誤2 0錯誤,0警告
您應該可以使用可選的DESTDIR=/......
運行make install
,以免破壞系統文件。
由於您使用的是OpenSUSE,因此不妨使用發行版的構建服務,並從此處安裝SVN版本的LLVM-Clang。 您還應該能夠找到libc ++和LLVM本身。
否則,請執行make install DESTDIR=/opt/llvm
,然后將/opt/llvm/bin/
到PATH
並通過添加以下編譯和鏈接選項使用libc ++:- -stdlib=libc++
。 您還需要LD_LIBRARY_PATH
/opt/llvm/lib
類的東西才能找到libc++
。
這應該可以立即使用,但是我只用過發行版的軟件包,而不是用自建的Clang來完成的。
請注意,Clang仍然使用系統鏈接器ld
,這很好。 目前,LLVM尚未提供此程序的功能齊全的替代方案,但他們正在研究該方案。
編輯 :似乎您卸載了太多:Clang還使用了GCC crtbegin和crtend對象文件。 因此,只需再次安裝GCC以及glibc及其開發包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.