Closed alerque closed 4 years ago
@alerque, I suspect it's related to a couple of wxTranslations calls that changed their signature between 3.0.5 (you are using) and the latest master. I pushed the changes to the master branch that should fix this. Can you confirm?
Much better, but not quite there. Got to 95% this time, here is the tail end of the build log:
[ 89%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxlua/wxllua.cpp.o
[ 90%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxlua/wxlobject.cpp.o
[ 91%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxlua/wxlstate.cpp.o
[ 92%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxlua/wxlua_bind.cpp.o
[ 93%] Linking CXX shared library ../../lib/Release/libwx.so
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
[ 93%] Built target wxLuaModule
make[2]: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
Scanning dependencies of target wxLua_app
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make[2]: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
[ 94%] Building CXX object apps/wxlua/CMakeFiles/wxLua_app.dir/wxlua.cpp.o
[ 95%] Linking CXX executable ../../bin/Release/wxLua
/usr/bin/ld: ../../lib/Release/libwxlua_bind-wx30gtk2u-3.0.0.9.so: undefined reference to `wxPluralFormsCalculatorPtr::~wxPluralFormsCalculatorPtr()'
collect2: error: ld returned 1 exit status
make[2]: *** [apps/wxlua/CMakeFiles/wxLua_app.dir/build.make:109: bin/Release/wxLua] Error 1
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make[1]: *** [CMakeFiles/Makefile2:457: apps/wxlua/CMakeFiles/wxLua_app.dir/all] Error 2
make[1]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make: *** [Makefile:171: all] Error 2
make: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
/usr/bin/ld: ../../lib/Release/libwxlua_bind-wx30gtk2u-3.0.0.9.so: undefined reference to `wxPluralFormsCalculatorPtr::~wxPluralFormsCalculatorPtr()'
Hm, not sure where this is coming from. There are no references to wxPluralFormsCalculatorPtr
in wxlua. Any idea? It seems to be a reference in a private field of wxMsgCatalog, but not sure why it would be undefined. I don't get these errors with the current master; will try to build with 3.0.5.
The destructor should be defined in wxDEFINE_SCOPED_PTR(wxPluralFormsCalculator, wxPluralFormsCalculatorPtr)
call in translation.cpp
. Not sure why it's not working; the ifdefs
seem to be correct.
Could this have to do with the custom build options? Particularly the widget and bind component lists being specified manually...are you testing using the same options?
Could this have to do with the custom build options? Particularly the widget and bind component lists being specified manually...are you testing using the same options?
Could be. Where do you see widget and bind components specified? It looks like my list of components is the same as yours (or at least mine has more, not fewer components):
Yours:
-DwxWidgets_COMPONENTS="stc;gl;html;aui;adv;core;net;base" \ -DwxLuaBind_COMPONENTS="stc;gl;html;aui;adv;core;net;base" \
Mine:
-DwxWidgets_COMPONENTS="xrc;xml;stc;gl;html;aui;adv;core;net;base" \ -DwxLuaBind_COMPONENTS="xrc;xml;stc;gl;html;aui;adv;core;net;base" \
I'll have to try compiling on Linux; I just compiled with 3.0.5 on Windows without any issues.
/usr/bin/ld: ../../lib/Release/libwxlua_bind-wx30gtk2u-3.0.0.9.so: undefined reference to `wxPluralFormsCalculatorPtr::~wxPluralFormsCalculatorPtr()'
I noticed that you're using gtk2; can you try with gtk3 (--with-gtk=3
option for wxidgets) or are you set on using gtk2?
I noticed that you're using gtk2; can you try with gtk3 (
--with-gtk=3
option for wxidgets) or are you set on using gtk2?
I actually had not noticed that. I have wxgtk2
on my system as a dependency for another project that doesn't support GTK3 yet, but I also have wxgtk3
. I think it's probably the fault of this build system that it's detecting the lowest available version rather than highest. Here is a quick look at the files on my system from each:
$ yay -Qlq wxgtk2
/usr/
/usr/bin/
/usr/bin/wx-config
/usr/lib/
/usr/lib/libwx_gtk2u_adv-3.0.so
/usr/lib/libwx_gtk2u_adv-3.0.so.0
/usr/lib/libwx_gtk2u_adv-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_aui-3.0.so
/usr/lib/libwx_gtk2u_aui-3.0.so.0
/usr/lib/libwx_gtk2u_aui-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_core-3.0.so
/usr/lib/libwx_gtk2u_core-3.0.so.0
/usr/lib/libwx_gtk2u_core-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_gl-3.0.so
/usr/lib/libwx_gtk2u_gl-3.0.so.0
/usr/lib/libwx_gtk2u_gl-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_html-3.0.so
/usr/lib/libwx_gtk2u_html-3.0.so.0
/usr/lib/libwx_gtk2u_html-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_media-3.0.so
/usr/lib/libwx_gtk2u_media-3.0.so.0
/usr/lib/libwx_gtk2u_media-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_propgrid-3.0.so
/usr/lib/libwx_gtk2u_propgrid-3.0.so.0
/usr/lib/libwx_gtk2u_propgrid-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_qa-3.0.so
/usr/lib/libwx_gtk2u_qa-3.0.so.0
/usr/lib/libwx_gtk2u_qa-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_ribbon-3.0.so
/usr/lib/libwx_gtk2u_ribbon-3.0.so.0
/usr/lib/libwx_gtk2u_ribbon-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_richtext-3.0.so
/usr/lib/libwx_gtk2u_richtext-3.0.so.0
/usr/lib/libwx_gtk2u_richtext-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_stc-3.0.so
/usr/lib/libwx_gtk2u_stc-3.0.so.0
/usr/lib/libwx_gtk2u_stc-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_xrc-3.0.so
/usr/lib/libwx_gtk2u_xrc-3.0.so.0
/usr/lib/libwx_gtk2u_xrc-3.0.so.0.5.0
/usr/lib/wx/
/usr/lib/wx/config/
/usr/lib/wx/config/gtk2-unicode-3.0
/usr/lib/wx/include/
/usr/lib/wx/include/gtk2-unicode-3.0/
/usr/lib/wx/include/gtk2-unicode-3.0/wx/
/usr/lib/wx/include/gtk2-unicode-3.0/wx/setup.h
/usr/share/
/usr/share/licenses/
/usr/share/licenses/wxgtk2/
/usr/share/licenses/wxgtk2/LICENSE
$ yay -Qlq wxgtk3
/usr/
/usr/bin/
/usr/bin/wx-config-gtk3
/usr/lib/
/usr/lib/libwx_gtk3u_adv-3.0.so
/usr/lib/libwx_gtk3u_adv-3.0.so.0
/usr/lib/libwx_gtk3u_adv-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_aui-3.0.so
/usr/lib/libwx_gtk3u_aui-3.0.so.0
/usr/lib/libwx_gtk3u_aui-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_core-3.0.so
/usr/lib/libwx_gtk3u_core-3.0.so.0
/usr/lib/libwx_gtk3u_core-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_gl-3.0.so
/usr/lib/libwx_gtk3u_gl-3.0.so.0
/usr/lib/libwx_gtk3u_gl-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_html-3.0.so
/usr/lib/libwx_gtk3u_html-3.0.so.0
/usr/lib/libwx_gtk3u_html-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_media-3.0.so
/usr/lib/libwx_gtk3u_media-3.0.so.0
/usr/lib/libwx_gtk3u_media-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_propgrid-3.0.so
/usr/lib/libwx_gtk3u_propgrid-3.0.so.0
/usr/lib/libwx_gtk3u_propgrid-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_qa-3.0.so
/usr/lib/libwx_gtk3u_qa-3.0.so.0
/usr/lib/libwx_gtk3u_qa-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_ribbon-3.0.so
/usr/lib/libwx_gtk3u_ribbon-3.0.so.0
/usr/lib/libwx_gtk3u_ribbon-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_richtext-3.0.so
/usr/lib/libwx_gtk3u_richtext-3.0.so.0
/usr/lib/libwx_gtk3u_richtext-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_stc-3.0.so
/usr/lib/libwx_gtk3u_stc-3.0.so.0
/usr/lib/libwx_gtk3u_stc-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_webview-3.0.so
/usr/lib/libwx_gtk3u_webview-3.0.so.0
/usr/lib/libwx_gtk3u_webview-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_xrc-3.0.so
/usr/lib/libwx_gtk3u_xrc-3.0.so.0
/usr/lib/libwx_gtk3u_xrc-3.0.so.0.5.0
/usr/lib/wx/
/usr/lib/wx/3.0/
/usr/lib/wx/3.0/web-extensions/
/usr/lib/wx/3.0/web-extensions/webkit2_extu-3.0.so
/usr/lib/wx/config/
/usr/lib/wx/config/gtk3-unicode-3.0
/usr/lib/wx/include/
/usr/lib/wx/include/gtk3-unicode-3.0/
/usr/lib/wx/include/gtk3-unicode-3.0/wx/
/usr/lib/wx/include/gtk3-unicode-3.0/wx/setup.h
/usr/share/
/usr/share/licenses/
/usr/share/licenses/wxgtk3/
/usr/share/licenses/wxgtk3/LICENSE
What needs to happen (cmake options for building wxlua?) to use the GTK3 libraries in this case?
You need to compile wxwidgets with gtk3 (add --with-gtk=3
); there is nothing to specify for wxlua, as it will use whatever configuration wxwidgets is using.
@alerque, I figured out undefined reference to
wxPluralFormsCalculatorPtr::~wxPluralFormsCalculatorPtr()'error while working on #80. You may need to set
-DCMAKE_CXX_FLAGS="-DwxLUA_USE_wxTranslations=0"` for wxlua cmake, as the wxwidgets package you are using appears to be broken. You'll need the latest master branch for this option.
I'm trying to update the
wxlua-git
package on Arch Linux to build again. Thewxlua
package at v3.0.0.9 currently builds fine against the system default Lua 5.4. Using almost the same build script against v3.0.0.9-30-g8b1faba fails to build. It looks like the last time I successfully built the package was v3.0.0.9-22-gdfd9963, so this is probably something in the last 8 commits, but given that something else on the system could have changed I'm not sure on that yet.After extracting the sources and changing into the wxLua directory, I'm configuring it like this:
...then building it like this:
The
cmake
proccess seems to complete okay, then make gets to 33% before going kaput with some compiler errors working on cpp sources. Here is a full log: