zerobrane - 在 Linux (Raspberry Pi) 上编译 Zerobrane 时遇到问题
问题描述
我正在尝试在树莓派 4 上编译 Zerobrane。我跑了:
build-linux.sh 全部
我能够编译 wxWidgets (3.1.4),但是当我编译 wxLua 时,我得到如下所示的错误。任何人都知道为什么这会失败?wxLua 网站表明 wsLua 是针对 wxWidgets 2.8.x 和 2.9.x 构建的。是这个问题吗?如果是这样,我如何获得构建脚本来构建正确版本的 wxWidgets?
Scanning dependencies of target wxLuaModule
[ 2%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/luamodule.cpp.o
[ 4%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxgl_bind.cpp.o
[ 6%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxstc_bind.cpp.o
[ 8%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxxrc_bind.cpp.o
[ 8%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxhtml_bind.cpp.o
[ 10%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxhtml_wxlhtml.cpp.o
[ 13%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxaui_bind.cpp.o
[ 15%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxadv_bind.cpp.o
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp: In function ‘int wxLua_wxAuiToolBar_DestroyTool(lua_State*)’:
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp:2311:27: error: ‘class wxAuiToolBar’ has no member named ‘DestroyTool’; did you mean ‘Destroy’?
bool returns = (self->DestroyTool(toolId));
^~~~~~~~~~~
Destroy
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp: In function ‘int wxLua_wxAuiToolBar_DestroyToolByIndex(lua_State*)’:
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp:2329:27: error: ‘class wxAuiToolBar’ has no member named ‘DestroyToolByIndex’; did you mean ‘FindToolByIndex’?
bool returns = (self->DestroyToolByIndex(idx));
^~~~~~~~~~~~~~~~~~
FindToolByIndex
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp: In function ‘int wxLua_wxAuiManager_AlwaysUsesLiveResize(lua_State*)’:
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp:10513:35: error: ‘AlwaysUsesLiveResize’ is not a member of ‘wxAuiManager’
bool returns = (wxAuiManager::AlwaysUsesLiveResize());
^~~~~~~~~~~~~~~~~~~~
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp: In function ‘int wxLua_wxAuiManager_HasLiveResize(lua_State*)’:
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp:10802:27: error: ‘class wxAuiManager’ has no member named ‘HasLiveResize’; did you mean ‘actionResize’?
bool returns = (self->HasLiveResize());
^~~~~~~~~~~~~
actionResize
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp: In function ‘int wxLua_wxAuiDockUIPart_Get_button(lua_State*)’:
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp:12217:29: error: cannot convert ‘wxAuiPaneButton*’ to ‘lua_Number’ {aka ‘double’}
lua_pushnumber(L, self->button);
~~~~~~^~~~~~
In file included from /home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxlua/wxldefs.h:19,
from /home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxlua/wxlstate.h:13,
from /home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp:18:
/home/pi/Downloads/ZeroBraneStudio-1.90/build/deps/include/lua.h:161:58: note: initializing argument 2 of ‘void lua_pushnumber(lua_State*, lua_Number)’
LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n);
~~~~~~~~~~~^
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp: In function ‘int wxLua_wxAuiDockUIPart_Set_button(lua_State*)’:
/home/pi/Downloads/ZeroBraneStudio-1.90/build/wxlua/wxLua/modules/wxbind/src/wxaui_bind.cpp:12379:20: error: invalid conversion from ‘int’ to ‘wxAuiPaneButton*’ [-fpermissive]
self->button = val;
^~~
[ 17%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxadv_wxladv.cpp.o
[ 17%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxcore_appframe.cpp.o
make[2]: *** [modules/luamodule/CMakeFiles/wxLuaModule.dir/build.make:141: modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxbind/src/wxaui_bind.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:343: modules/luamodule/CMakeFiles/wxLuaModule.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
Error: failed to build wxLua
解决方案
一旦更改了上面的行,就会出现进一步的问题。LPEG 版本需要更改,scintillua 404 的
line 65 LPEG_BASENAME="lpeg-1.0.2" #change from lpeg-1.0.0
line 69 LEXLPEG_BASENAME="scintillua_4.4.5-2"
line 70 LEXLPEG_FILENAME="$LEXLPEG_BASENAME.zip"
line 71 LEXLPEG_URL="https://github.com/orbitalquark/scintillua/releases/download/scintillua_4.4.5-2/$LEXLPEG_FILENAME"
这更进一步,但 LexLPeg.cxx:33:10 上的错误:致命错误:DefaultLexer.h:没有这样的文件或目录
推荐阅读
- python - RuntimeError:未找到应用程序。在视图函数中工作或推送应用程序上下文
- flutter - Flutter BottomNavigationBar - 标签的多行?
- for-loop - 在for循环中按需求传递并按名称传递?
- python - 使用qt在不同文件中的两个类
- ios - ios上的godot角色移动
- java - TableView Cell 跳过颜色
- node.js - Nestjs monorepo 在 docker-compose 中具有相对环境变量
- azure - LinkedIn 授权代码流(三足 OAuth)- 连接到 Azure 数据工厂
- javascript - JavaScript节点中的承诺值未更新变量值
- garbage-collection - 强制对 WeakReference 的目标进行垃圾回收