繁体   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