首页 > 解决方案 > 如何在 clang++ 7.0.1 中识别目标文件的来源?

问题描述

clang 给我一个关于我不认识的目标文件的错误,我找不到它的来源。

ld.lld.exe: error: dords00195.o: invalid data encoding
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)

我在我的机器上找不到dords00195.o任何地方,也找不到类似的名字dords

据称invalid data encoding意味着链接器正在尝试链接不同目标的库,无论是体系结构还是版本控制。但我无法确定哪些库。我试图添加-v到 clang++ 命令行,但它没有提供任何额外的信息。我缺少什么来追踪这个奇怪的目标文件?

clang++.exe -v
clang version 7.0.1 (tags/RELEASE_701/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix

我正在使用的命令行是

clang++.exe -o <outputpath> "Lib/lib.A" -L "../Lib2/lib2.A" -L "../Lib3Root/" "-l:libfoo.a" "-l:libbar.so" -Wl,-Map=".\..\Debug.map" --sysroot="sysroot_debian10" -Wl,-build-id=sha1

编译每一个都没有问题。当我尝试链接它们时它失败了。但是试图确定其中 25-50 个库中的哪些库似乎是不可行的。

标签: linuxllvmcross-compilingclang++

解决方案


推荐阅读