建筑图书馆失败:无法识别文件格式;作为链接描述文件

我使用Ubuntu 18.04.3 LTS(gcc 7.4.0)我已经成功构建了shaderc,其中包含ktx library所需的所有组件。当我构建ktx库(cmake / Iinux /调试或发行版)时,出现以下错误:

[ 91%] Linking CXX executable gl3loadtests
/usr/bin/ld:/home/user/Downloads/KTX-Software-master/build/cmake/linux/Release/../../../../other_lib/linux/Release-x64/libSDL2-2.0.so: file format not recognized; treating as linker script
/usr/bin/ld:/home/user/Downloads/KTX-Software-master/build/cmake/linux/Release/../../../../other_lib/linux/Release-x64/libSDL2-2.0.so:1: syntax error
collect2: error: ld returned 1 exit status
CMakeFiles/gl3loadtests.dir/build.make:205: recipe for target 'gl3loadtests' failed
make[2]: *** [gl3loadtests] Error 1
CMakeFiles/Makefile2:218: recipe for target 'CMakeFiles/gl3loadtests.dir/all' failed
make[1]: *** [CMakeFiles/gl3loadtests.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

符号链接的外观如下:

libSDL2-2.0.so -> libSDL2-2.0.so.0
libSDL2-2.0.so.0 -> libSDL2-2.0.so.0.9.0
libSDL2-2.0.so.0.9.0

有人在linux上遇到相同的错误吗?如何解决?

qf0923 回答:建筑图书馆失败:无法识别文件格式;作为链接描述文件

如果查看文件大小,您会注意到.so文件很小,大约130个字节。另一方面,存储库包含一个大小为几兆字节的文件(请参见[repository] ​​[1])。差异是由我们从服务器下载存储库的方式导致的:通过 git clone

如自述文件所述,需要使用 git lfs 工具来正确,完整地读取存储库。不幸的是,无论出于何种原因,它似乎都不会自动运行,但是我发现以下命令序列可以提供帮助:

    从Ubuntu的标准软件存储库中
  1. 安装 git lfs
  2. 完全删除本地存储库,然后重新克隆它(这可能是不必要的)
  3. 输入包含本地存储库克隆的目录
  4. git lfs获取(这可能是不必要的)
  5. git lfs pull

pull命令最终将较小的文件(约130个字节)替换为它们各自较大的二进制文件,而实际上这些文件只是到存储库的lfs链接。

[1]:https://github.com/KhronosGroup/KTX-Software/blob/master/other_lib/linux/Debug-x64/libSDL2-2.0.so.0.9.0:存储库中的.so文件

本文链接:https://www.f2er.com/3143893.html

大家都在问