huzheng001/stardict-3

3.0.4 has missing linking to 'gmodule-2.0' for g_module_open

Closed this issue · 2 comments

What steps will reproduce the problem?
1. Missing linking to gmodule-2.0 causes the build to fail with undefined 
references at linking stage with -Wl,--as-needed and/or the new GNU gold linker 
and/or other strict linker like the one from solaris

What is the expected output? What do you see instead?

The build fails like...

libtool: link: x86_64-pc-linux-gnu-g++ -O2 -pipe -march=native 
-frecord-gcc-switches -Wl,-O1 -Wl,--hash-style=gnu -o stardict stardict.o 
mainwin.o conf.o skin.o prefsdlg.o dictmanagedlg.o pluginmanagedlg.o floatwin.o 
readword.o selection.o splash.o gtktextviewpango.o pangoview.o articleview.o 
class_factory.o inifile.o x11_iskeyspressed.o docklet.o gtk_iskeyspressed.o 
progresswin.o tray.o dictmanage.o eggaccelerators.o globalhotkeys.o 
hotkeyeditor.o tomboykeybinder.o desktop.o log.o cmdlineopts.o -pthread  
-Wl,--as-needed lib/.libs/libstardict.a -lSM -lICE -lsigc-2.0 -lgtk-x11-2.0 
-lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 
-lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lfontconfig -lfreetype -lgthread-2.0 
-lglib-2.0 -lz -lX11 -pthread
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictPluginBase::~StarDictPluginBase(): error: undefined reference to 
'g_module_symbol'
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictPluginBase::~StarDictPluginBase(): error: undefined reference to 
'g_module_close'
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictPlugins::get_plugin_info(char const*, StarDictPlugInType&, 
std::string&, bool&): error: undefined reference to 'g_module_open'
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictPlugins::get_plugin_info(char const*, StarDictPlugInType&, 
std::string&, bool&): error: undefined reference to 'g_module_symbol'
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictPlugins::get_plugin_info(char const*, StarDictPlugInType&, 
std::string&, bool&): error: undefined reference to 'g_module_close'
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictPlugins::get_plugin_info(char const*, StarDictPlugInType&, 
std::string&, bool&): error: undefined reference to 'g_module_close'
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictPlugins::get_plugin_info(char const*, StarDictPlugInType&, 
std::string&, bool&): error: undefined reference to 'g_module_close'
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictMiscPlugin::on_mainwin_finish(): error: undefined reference to 
'g_module_symbol'
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictPlugins::load_plugin(char const*): error: undefined reference to 
'g_module_open'
lib/.libs/libstardict.a(pluginmanager.o):pluginmanager.cpp:function 
StarDictPlugins::load_plugin(char const*): error: undefined reference to 
'g_module_symbol'
collect2: error: ld returned 1 exit status
Makefile:577: recipe for target 'stardict' failed

What version of the product are you using? On what operating system?

3.0.3 or 3.0.4, problem is in both, using Linux, but it's related to strict 
linker, and you should link what you use, so...

Please provide any additional information below.

Adding 'gmodule-2.0' to 

Original issue reported on code.google.com by ssuomine...@gmail.com on 9 May 2014 at 2:15

Attachments:

this was reported originally to https://bugs.gentoo.org/show_bug.cgi?id=464148

Original comment by ssuomine...@gmail.com on 9 May 2014 at 2:16

This bug is fixed in the newest code(3.0.5)!

Original comment by huzheng...@gmail.com on 15 May 2014 at 12:10

  • Changed state: Fixed