gpt4 book ai didi

c++ - 建库失败 : file format not recognized; treating as linker script

转载 作者:行者123 更新时间:2023-12-04 18:39:43 29 4
gpt4 key购买 nike

我使用 Ubuntu 18.04.3 LTS (gcc 7.4.0) 我已经成功构建 shaderc包含ktx library 所需的所有组件.当我构建 ktx 库(cmake/Iinux/debug 或发布)时,我收到以下错误:

[ 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....

符号链接(symbolic link)看起来是这样的:
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 上遇到过同样的错误吗?如何解决?

最佳答案

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

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

  • 安装 git lfs 来自 Ubuntu 的标准软件存储库
  • 完全删除本地存储库并重新克隆它(这可能是不必要的)
  • 进入包含本地仓库克隆的目录
  • git lfs 获取 (这可能是不必要的)
  • git lfs 拉

  • pull 命令最终用它们各自的大二进制文件替换了实际上只是到存储库的 lfs 链接的小(大约 130 字节)文件。

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

    关于c++ - 建库失败 : file format not recognized; treating as linker script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58751263/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com