你能(合理地)把 Fedora 21 带到它只有 llvm/clang/libc++/libc++abi 的地方吗?(我发现一些东西表明没有,但它们都大约 3 岁,从那时起 llvm/clang 已经走了很长一段路。)
通过全新安装,我尝试了
yum install gcc gcc-c++
(downloaded, built, installed llvm/cfe(clang)/compiler-rt/libcxx/libcxxabi from svn)
yum remove gcc gcc-c++
added to /etc/profile: export CC=/usr/local/bin/clang \ export CXX=/usr/local/bin/clang++
(in case of hard wiring)
ln -s /usr/local/bin/clang /usr/local/bin/gcc
ln -s /usr/local/bin/clang /usr/local/bin/cc
ln -s /usr/local/bin/clang++ /usr/local/bin/g++
ln -s /usr/local/bin/clang++ /usr/local/bin/c++
ldconfig
我很高兴,然后去建造一些东西,我得到了:
ld: cannot find crtbegin.o
ld: cannot find -lgcc
ld: cannot find -lgcc_s
clang -v 包括
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.9.2
ldconfig && ldconfig -p | grep libgcc 确实显示
libgcc_s.so.1 (libc6,x86-64) => /lib64/libgcc_s.so.1
/lib64 是 /usr/lib64 的符号链接。而且,/usr/lib64/libgcc_s.so.1 是 /usr/lib64/libgcc_s-4.9.2-20150212.so.1 的符号链接,它作为真实文件存在(92816 字节。)
所以,我不明白 ld 在 -lgcc_s 上的问题是什么。crtbegin 无处可寻,gcc (no _s) 无处可寻。
yum install libgcc 说它已经安装并且是最新版本,无事可做。
由于我已经安装了 clang 源构建,我可以重新构建 clang,这次使用 clang 而不是 gcc,以摆脱依赖关系?(也许然后“候选 GCC 安装”位就消失了。)
我可以强制 -stdlib=c++ 和 -lc++abi 为默认值,或者至少在没有 gcc 的情况下安装 libc++ 和 libc++abi 吗?