锵连接问题(从源到GCC-快照)(Clang linker issues (from source,

2019-07-17 17:55发布

我似乎无法得到这个工作。 我被配置为与--with-gcc-toolchain=其中等号后我把其中的gcc是目录( /usr/lib/gcc-snapshot/bin )。

我也看了成以“答案铛连接问题, ”但我不知道怎样才能得到公认的答案,找到正确的位置,而符号链接的答案会工作,除了所有正在搜索的目录是否存在的(复制lib从GCC-快照文件夹复制到包括位置之一似乎并没有帮助)。

如所建议的中的其他问题,的输出clang++ test.cpp -v

鲍勃@鲍勃:〜/编程$铛++ TEST.CPP -v
3.3版本铛(干线171350)
目标:x86_64的未知-Linux的GNU
线程模型:POSIX
“/首页/鲍勃/编程/建设/释放+断言/斌/铛” -cc1 - 三x86_64的未知-Linux的GNU -emit-OBJ -mrelax - 全免费 - 禁用 - - 主文件名TEST.CPP -mrelocation模型静态-mdisable-FP-琳-fmath-错误号-masm-冗长-mconstructor-别名-munwind桌-target-CPU的x86-64 -target链接器版本2.22 -momit叶帧指针 - v -resource-DIR /home/bob/programming/build/Release+Asserts/bin/../lib/clang/3.3 -fmodule缓存路径/ var / tmp中/铛模块缓存-internal-ISYSTEM的/ usr /本地/包括-internal-ISYSTEM /home/bob/programming/build/Release+Asserts/bin/../lib/clang/3.3/include -internal-externc-ISYSTEM / usr / include目录/ x86_64的Linux的GNU的 - 内部externc-ISYSTEM /包括-internal-externc-ISYSTEM的/ usr /包括-fdeprecated宏-fdebug编译-DIR /家庭/鲍勃/编程-ferror限值19 -fmessage长度80 -mstackrealign -fobjc-运行时间= GCC -fcxx的例外-fexceptions -fdiagnostics出现选项-fcolor诊断-backend选项-vectorize-循环-o /tmp/test-PWiB4M.o -x C ++ŧ est.cpp
铛-cc1 3.3版本基于LLVM 3.3svn默认目标x86_64的未知-Linux的GNU
忽略不存在的目录“/包括”
#包括“...”的搜索从这里开始:
的#include <...>搜索从这里开始:
在/ usr /本地/包括
/home/bob/programming/build/Release+Asserts/bin/../lib/clang/3.3/include
的/ usr /包括/ x86_64的-Linux的GNU
/ usr / include目录
搜索列表结束。
TEST.CPP:1:10:致命错误: 'iostream的' 文件未找到
的#include ^
产生1个错误。

铛版本3.3(树干修订版171350)

编辑:有没有.o中的文件Release+Asserts为build文件夹。 这是正常的吗? 如果不是,为什么是这样的话,我怎么能解决这个问题(如果我可以指出它作为铛的STDLIB,则该作品,以及)。

编辑2:这也无法编译int main(){return 0;}因为它无法找到crtbegin.o 。 全输出如下:

在/ usr /斌/劳工处:找不到crtbegin.o:没有这样的文件或目录
在/ usr /斌/劳工处:找不到-lgcc
在/ usr /斌/劳工处:找不到-lgcc_s
铛:错误:连接器命令,退出代码1失败(使用-v看调用)

后的结果-v是与上述相同,但与最后的结束误差是不同的。

的config.log:
完整的文件,可以发现在这里 ,但第一(非注释)线: $ ../llvm/configure --with-gcc-toolchain=/usr/lib/gcc-snapshot/gcc

Answer 1:

我们已经确定的问题是,海合会与前缀= / usr / lib目录/ gcc的快照配置参数设置。 和LLVM配置有--with-GCC-工具链= / usr / lib中/ GCC-快照/ GCC参数。 它应该是相同的gcc安装前缀,即--with-GCC-工具链= / usr / lib中/ GCC-快照。

这个问题目前的第一行说:“我配置了--with-GCC工具链=在等号后,我把其中的gcc是目录(/ usr / lib目录/ GCC快照/箱)。”,而目前的最后一行说 “第一个(非注释)线:$ ../llvm/configure --with-GCC工具链= / usr / lib目录/ GCC快照/ GCC”

这是令人费解的,你可能会认为你已经把标志--with-GCC工具链= / usr / lib目录/ GCC快照/箱,但你实际上把--with-GCC工具链= / usr / lib目录/ GCC -snapshot / GCC

无论如何,我想你应该尝试以下。

  1. 删除或重命名build目录(位置运行configure命令的目录,也就是在那里你找到的config.log文件的目录),我认为这是为/ home /鲍勃/编程/ build目录。
  2. 现在创建的/ home /鲍勃/编程/重新建立目录。 现在应该是空的。
  3. CD /家庭/鲍勃/编程/编译
  4. 运行以下配置命令../llvm/configure --with-GCC-工具链= / usr / lib中/ GCC-快照
  5. 与您的构建过程的其余部分跟进。

这个问题似乎是你没有正确指定GCC工具链前缀。 它应该是一样的,你在配置使用gcc的--prefix参数。

这里报到的结果。

另见编译GCC 4.7之后锵3.2构建破



文章来源: Clang linker issues (from source, to gcc-snapshot)