阿塞普里特忍者构建错误"cannot find -lSKIA_OPENGL_LIBRARY-NOTFOUND"



在构建 Debian 10 (amd64( virtualbox VM 上尝试构建 Aseprite 时,在构建 Skia 后,ninja aseprite命令返回错误:

/usr/bin/ld: cannot find -lSKIA_OPENGL_LIBRARY-NOTFOUND
[1/1] Linking CXX executable bin/aseprite
FAILED: bin/aseprite 
: && /usr/bin/c++  -Wall -Wno-switch -O2 -g -DNDEBUG   src/CMakeFiles/aseprite.dir/main/main.cpp.o  -o bin/aseprite  lib/libapp-lib.a  lib/libclip.a  -lxcb  -lpthread  lib/libdio-lib.a  lib/libfilters-lib.a  lib/libflic-lib.a  lib/libtga-lib.a  lib/librender-lib.a  lib/libdoc-lib.a  lib/libfixmath-lib.a  lib/libui-lib.a  lib/liblaf-os.a  lib/liblaf-gfx.a  lib/liblaf-ft.a  /root/deps/skia/out/Release-x64/libskia.a  -lSKIA_OPENGL_LIBRARY-NOTFOUND  /usr/lib/x86_64-linux-gnu/libfontconfig.so  /usr/lib/x86_64-linux-gnu/libX11.so  /usr/lib/x86_64-linux-gnu/libXext.so  /usr/lib/x86_64-linux-gnu/libXcursor.so  /root/deps/skia/out/Release-x64/libskshaper.a  lib/libobs.a  lib/libundo.a  lib/libcmark.a  lib/libjpeg.a  lib/libgiflib.a  lib/libwebpdemux.a  lib/libwebpmux.a  lib/libwebp.a  -lpthread  -lm  lib/libfreetype.a  lib/libharfbuzz.a  lib/libfreetype.a  lib/libharfbuzz.a  lib/libpng16.a  -lm  lib/libjson11.a  lib/libarchive.a  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libexpat.so  /usr/lib/x86_64-linux-gnu/libssl.so  lib/libfmt.a  lib/libtinyexpr.a  lib/liblauxlib.a  lib/liblua.a  lib/liblualib.a  lib/libupdater-lib.a  lib/libcfg-lib.a  lib/libver-lib.a  lib/libtinyxml.a  lib/libnet-lib.a  lib/liblaf-base.a  lib/libmodpbase64.a  /usr/lib/x86_64-linux-gnu/libdl.so  lib/libcurl.a  lib/libz.a  -ldl && :
/usr/bin/ld: cannot find -lSKIA_OPENGL_LIBRARY-NOTFOUND
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

我该如何解决这个问题?

CMake 似乎正在寻找 OpenGL 并失败了......无论如何,Aseprite似乎都没有使用OpenGL,因此通过清除缓存变量SKIA_OPENGL_LIBRARY完全禁用它应该可以工作:

cd aseprite/build
cmake -DSKIA_OPENGL_LIBRARY="" ..
ninja aseprite

我已经在Windows上测试过它,但我不完全确定它是否可以在Linux上运行...

对于仍在寻找答案的人。我让它建立在 Ubuntu 20.04 上。

  1. 按照说明在 skia git 存储库中构建 skia。记下将存储库克隆到哪个文件夹,稍后将需要它。我尝试使用预先构建的二进制文件,但我一定做错了什么,永远无法让它工作。
  2. 构建完成后,您将看到有关 32 字节对齐的注释,如果您检查outRelease-x64文件夹,您将看到一个libskia.a文件。现在你知道滑雪板是成功建造的。
  3. 使用sudo apt-get install -y g++ cmake ninja-build libx11-dev libxcursor-dev libxi-dev libgl1-mesa-dev libfontconfig1-dev安装 aseprite linux 构建依赖项。您可以在 aseprite git 存储库中找到这些说明。
  4. 按照该页面下方的说明进行 linux 安装,但请注意您需要更改的有关第 2 点中提到的libskia.a文件位置的参数。
  5. 在开始构建之前(以及你为什么在这里(,你需要输入上面给出的@Ben_命令来取消依赖与 OPENGL 的链接 (cmake -DSKIA_OPENGL_LIBRARY="" ..(
  6. 现在继续构建 aseprite 作为其存储库页面上给出的其余构建说明,并带有ninja aseprite
  7. 现在转到aseprite/build/bin并找到可执行文件aseprite
  8. 您可以将此bin文件夹复制到另一个文件夹,然后从那里运行aseprite。然后,您可以删除下载的所有源。
  9. python步骤中会有一堆错误,您会注意到它抱怨找不到一些存储库,我认为common.git就是其中之一。您可以安全地忽略此警告。

如果你想继续支持应用程序的开发,我建议你花任何钱购买许可证(但像这样构建自己的副本是完全合法的(。

相关内容

  • 没有找到相关文章

最新更新