我似乎无法让它发挥作用。我配置了--with-gcc-toolchain=
在 equals 之后我把 gcc 所在的目录(/usr/lib/gcc-snapshot/bin
).
我还查看了“clang 链接器问题“但我不知道如何获得接受的答案来找到正确的位置,并且符号链接答案会起作用,除了它正在搜索的所有目录都存在(复制lib
从 gcc-snapshot 文件夹到包含位置之一似乎没有帮助)。
正如另一个问题中所建议的,输出clang++ test.cpp -v
:
bob@bob:~/programming$ clang++ test.cpp -v
clang 版本 3.3 (主干 171350)
目标:x86_64-unknown-linux-gnu
线程模型:posix
“/home/bob/programming/build/Release+Asserts/bin/clang”-cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -主文件名 test.cpp -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer - v -resource-dir /home/bob/programming/build/Release+Asserts/bin/../lib/clang/3.3 -fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem /usr /local/include -internal-isystem /home/bob/programming/build/Release+Asserts/bin/../lib/clang/3.3/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -内部外部系统 /include -内部外部系统 /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/bob/programming -ferror-limit 19 -fmessage-length 80 -mstackrealign -fobjc-runtime= gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -backend-option -vectorize-loops -o /tmp/test-PWiB4M.o -x c++ test.cpp
clang -cc1 版本 3.3 基于 LLVM 3.3svn 默认目标 x86_64-unknown-linux-gnu
忽略不存在的目录“/include”
#include "..." 搜索从这里开始:
#include <...> 搜索从这里开始:
/usr/local/包括
/home/bob/programming/build/Release+Asserts/bin/../lib/clang/3.3/include
/usr/include/x86_64-linux-gnu
/usr/包括
搜索列表结束。
test.cpp:1:10:致命错误:找不到“iostream”文件
#包括
^
生成 1 个错误。
clang 版本 3.3(主干修订版 171350)
EDIT:没有.o
文件在Release+Asserts
构建的文件夹。这是正常的吗?如果不是,为什么会这样,我该如何修复它(如果我可以将它指向 clang 的 stdlib,那么这也有效)。
Edit 2:也编译失败int main(){return 0;}
因为它找不到crtbegin.o
。完整输出如下:
/usr/bin/ld: 找不到 crtbegin.o: 没有这样的文件或目录
/usr/bin/ld: 找不到-lgcc
/usr/bin/ld: 找不到 -lgcc_s
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
之后的结果-v
与上面相同,但结束错误不同。
配置日志:
完整文件可以找到here,但第一行(非注释)是:$ ../llvm/configure --with-gcc-toolchain=/usr/lib/gcc-snapshot/gcc
我们发现的问题是 gcc 是使用 --prefix=/usr/lib/gcc-snapshot 配置参数安装的。并且 llvm 配置为 --with-gcc-toolchain=/usr/lib/gcc-snapshot/gcc 参数。它应该与 gcc 安装前缀相同,即 --with-gcc-toolchain=/usr/lib/gcc-snapshot。
问题当前的第一行说“我配置了 --with-gcc-toolchain= 在等于之后我将 gcc 所在的目录(/usr/lib/gcc-snapshot/bin)。”,以及当前的最后一行说“第一行(非注释)是:$ ../llvm/configure --with-gcc-toolchain=/usr/lib/gcc-snapshot/gcc”
这很令人费解,您可能认为您已经放置了标志 --with-gcc-toolchain=/usr/lib/gcc-snapshot/bin 但实际上您已经放置了 --with-gcc-toolchain=/usr/lib/gcc -快照/海湾合作委员会
无论如何,我认为你应该尝试以下方法。
- 删除或重命名构建目录(运行配置命令的目录,即找到 config.log 文件的目录)我假设它是 /home/bob/programming/build 目录。
- 现在再次创建 /home/bob/programming/build 目录。现在应该是空的。
- cd /home/bob/编程/构建
- 运行以下配置命令
../llvm/configure --with-gcc-toolchain=/usr/lib/gcc-snapshot
- 完成其余的构建过程。
问题似乎是您没有正确指定 gcc-toolchain 前缀。它应该与配置 gcc 时使用的 --prefix 参数相同。
在这里报告结果。
另请参阅Clang 3.2 构建在构建 gcc 4.7 后损坏
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)