2401_83265091 2024-03-16 16:47 采纳率: 0%
浏览 75

qt编译出现wasm-Id error

qt使用Assembly编译时出现wasm-ld: error: unknown file type: /usr/local/ffmpeg/lib/libavcodec.a(allcodecs.o)
qt版本6.5.3

img

img

这是什么情况

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2024-03-16 16:47
    关注

    2401_83265091 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    这个错误提示是在使用Qt 6.5.3编译时出现的。错误信息显示了"unknown file type: /usr/local/ffmpeg/lib/libavcodec.a(allcodecs.o)",这是指在编译过程中,wasm-ld无法识别/usr/local/ffmpeg/lib/libavcodec.a(allcodecs.o)这个文件的类型。

    解决方案

    1. 确保你的系统上已经安装了FFmpeg库,并且路径设置正确。

    2. 根据错误信息,文件"/usr/local/ffmpeg/lib/libavcodec.a"是一个静态库文件,而WASM目标需要使用LLVM位码文件(.bc)或LLVM汇编文件(.ll)。因此,需要将静态库文件转换成LLVM位码文件。具体步骤如下:

      • 使用emar命令将静态库文件解压缩成目标文件:emar x /usr/local/ffmpeg/lib/libavcodec.a
      • 使用emcc命令将目标文件转换成LLVM位码文件:emcc -o mylib.bc *.o
    3. 修改你的CMakeLists.txt文件,将之前引用的静态库文件的路径更改为转换后的LLVM位码文件路径。

      target_link_libraries(<your_target_name> PRIVATE /path/to/mylib.bc)
      
    4. 重新编译你的项目,看是否能够成功通过编译。

    希望这些解决方案对你有帮助。如果问题仍然存在,请提供更多的上下文信息以便我们更好地帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月16日