簡體   English   中英

如何正確配置Clang?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM