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