aMule Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're back! (IN POG FORM)

Author Topic: a linking error when compiling aMule in FC4 with wxWidgets-2.6.1  (Read 3610 times)

silk_road

  • Newbie
  • Karma: 0
  • Offline Offline
  • Posts: 3
a linking error when compiling aMule in FC4 with wxWidgets-2.6.1
« on: September 08, 2005, 05:38:30 PM »

The error is:
------------------------------------------------------------------------------------------------
$ gmake
...
...
/usr/local/bin/g++-344  -march=i686 -DUSE_EMBEDDED_CRYPTO -W -Wall -g -ggdb -fno-inline -D__DEBUG__ -fmessage-length=0 -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -O2   -lpthread -o amule  amule-AddFriend.o amule-AddFileThread.o amule-AICHSyncThread.o amule-amule.o amule-amule-gui.o amule-amuleDlg.o amule-BarShader.o amule-BaseClient.o amule-ChatSelector.o amule-ChatWnd.o amule-CatDialog.o amule-CFile.o amule-ClientCredits.o amule-ClientDetailDialog.o amule-ClientList.o amule-ClientListCtrl.o amule-ClientUDPSocket.o amule-ColorFrameCtrl.o amule-CommentDialog.o amule-CommentDialogLst.o amule-DataToText.o amule-DeadSourceList.o amule-DirectoryTreeCtrl.o amule-DownloadClient.o amule-DownloadListCtrl.o amule-DownloadQueue.o amule-ECSocket.o amule-ECPacket.o amule-ECSpecialTags.o amule-ED2KLink.o amule-EditServerListDlg.o amule-EMSocket.o amule-ExternalConn.o amule-FileDetailDialog.o amule-FileDetailListCtrl.o amule-FileFunctions.o amule-Format.o amule-Friend.o amule-FriendList.o amule-FriendListCtrl.o amule-HTTPDownload.o amule-IPFilter.o amule-KnownFile.o amule-KadDlg.o amule-KadSearchListCtrl.o amule-KnownFileList.o amule-ListenSocket.o amule-listctrl.o amule-Logger.o amule-MemFile.o amule-MD5Sum.o amule-MuleDebug.o amule-MuleGifCtrl.o amule-MuleListCtrl.o amule-MuleNotebook.o amule-MuleTextCtrl.o amule-muuli_wdr.o amule-NetworkFunctions.o amule-OScopeCtrl.o amule-OtherFunctions.o amule-Packet.o amule-PartFile.o amule-PartFileConvert.o amule-PlatformSpecific.o amule-Preferences.o amule-PrefsUnifiedDlg.o amule-Proxy.o amule-RLE.o amule-SafeFile.o amule-SearchDlg.o amule-SearchList.o amule-SearchListCtrl.o amule-Server.o amule-ServerConnect.o amule-ServerList.o amule-ServerListCtrl.o amule-ServerSocket.o amule-ServerUDPSocket.o amule-ServerWnd.o amule-SharedFileList.o amule-SharedFilesCtrl.o amule-SharedFilesWnd.o amule-SHA.o amule-SHAHashSet.o amule-StateMachine.o amule-Statistics.o amule-StatisticsDlg.o amule-StatTree.o amule-StringFunctions.o amule-TransferWnd.o amule-UploadBandwidthThrottler.o amule-UploadClient.o amule-UploadQueue.o amule-UInt128.o   amule-CryptoPP.o   amule-MuleTrayIcon.o -L/software/wxWidgets-2.6.1/lib -pthread   -L/usr/X11R6/lib  /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_xrc-2.6.a /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_qa-2.6.a /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_html-2.6.a /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_adv-2.6.a /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_core-2.6.a /software/wxWidgets-2.6.1/lib/libwx_baseud_xml-2.6.a /software/wxWidgets-2.6.1/lib/libwx_baseud_net-2.6.a /software/wxWidgets-2.6.1/lib/libwx_baseud-2.6.a -L/usr/lib -lSDL -lpthread -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lXinerama -lXxf86vm -lpng -ljpeg -ltiff -lexpat -lwxregexud-2.6 -lz -ldl -lm  -lz   -lbfd -liberty
amule-ChatSelector.o(.gnu.linkonce.r._ZTV12CChatSession+0x3b4): undefined reference to `non-virtual thunk to wxTextCtrlBase::overflow(int)'
amule-listctrl.o(.gnu.linkonce.r._ZTVN10MuleExtern14wxListTextCtrlE+0x3b4): undefined reference to `non-virtual thunk to wxTextCtrlBase::overflow(int)'
amule-MuleTextCtrl.o(.gnu.linkonce.r._ZTV13CMuleTextCtrl+0x3b4): undefined reference to `non-virtual thunk to wxTextCtrlBase::overflow(int)'
collect2: ld returned 1 exit status
------------------------------------------------------------------------------------------------



Looks like it cannot find `non-virtual thunk to wxTextCtrlBase::overflow(int)', However, when I probe into the wxWidgets lib:
------------------------------------------------------------------------------------------------
[hua@yin lib]$ nm -Cg libwx_gtk2ud_core-2.6.a --print-file-name | grep ::overflow
libwx_gtk2ud_core-2.6.a:corelib_listctrl.o:         U wxTextCtrlBase::overflow(int)
libwx_gtk2ud_core-2.6.a:corelib_listctrl.o:         U non-virtual thunk to wxTextCtrlBase::overflow(int)
libwx_gtk2ud_core-2.6.a:corelib_textctrl.o:         U wxTextCtrlBase::overflow(int)
libwx_gtk2ud_core-2.6.a:corelib_textctrl.o:         U non-virtual thunk to wxTextCtrlBase::overflow(int)
libwx_gtk2ud_core-2.6.a:corelib_textcmn.o:00000f66 T wxTextCtrlBase::overflow(int)
libwx_gtk2ud_core-2.6.a:corelib_textcmn.o:00000000 W non-virtual thunk to wxTextCtrlBase::overflow(int)
libwx_gtk2ud_core-2.6.a:corelib_treectlg.o:         U wxTextCtrlBase::overflow(int)
libwx_gtk2ud_core-2.6.a:corelib_treectlg.o:         U non-virtual thunk to wxTextCtrlBase::overflow(int)
------------------------------------------------------------------------------------------------

It is defined in corelib_textctrl.o.  I did a little research using Google. Still haven't figured out what is the issue about `non-virtual thunk'.

Please let me know If anyone experiences the same problem.

Thanks.



The configure of wxWidgets:
------------------------------------------------------------------------------------------------
CFLAGS=-march=i686 CXXFLAGS=-march=i686  ./configure --prefix=/software/wxWidgets-2.6.1 --sysconfdir=/etc --localstat
edir=/var/local/ --enable-gui --enable-optimise --enable-debug --enable-stl --enable-intl --enable-config --enable-unicode --enable-fontmap --enable-log --with-sdl --with-opengl --with-gnomeprint --with-libjpeg --with-libpng --with-libtiff --with-regex --with-expat --with-gtk --disable-compat24 --disable-shared
------------------------------------------------------------------------------------------------

The configure of aMule:
------------------------------------------------------------------------------------------------
CFLAGS=-march=i686 CXXFLAGS=-march=i686  ./configure --prefix=/software/aMule-2.0.3 --sysconfdir=/etc --enable-optimize --enable-amulecmd --enable-amulecmdgui --enable-ccache --enable-wxcas --enable-cas --enable-alc --enable-alcc --with-wx-config=/software/wxWidgets-2.6.1/bin/wx-config
------------------------------------------------------------------------------------------------

GCC verfion
------------------------------------------------------------------------------------------------
$ gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,java,f95,ada --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --host=i386-redhat-linux
Thread model: posix
gcc version 4.0.1 20050727 (Red Hat 4.0.1-5)
------------------------------------------------------------------------------------------------


The configure output of aMule:
------------------------------------------------------------------------------------------------
  Configure script has finished system check.

  Configured aMule CVS for 'i686-pc-linux-gnu'.

  aMule enabled options:

  **** aMule Core ****
  Prefix where aMule should be installed?                    /software/aMule-2.0.3
  Should aMule be compiled with i18n support?                yes
  Should aMule be compiled in debug mode?                    yes
  Should aMule be compiled with profiling?                   no
  Should aMule be compiled with optimizations?               yes
  Should aMule be compiled with taskbar icon support?        yes
  Should aMule be compiled with old GTK taskbar icon?        no
  Should aMule be linked against patched gsocket?            no
  Should aMule monolithic application be built?              yes
  Should aMule daemon version be built?                      no
  Should aMule remote gui be built? (EXPERIMENTAL)           no
  Should aMule Kademlia code be compiled?                    no
  Crypto++ library/headers style?                            embedded

  **** aMule TextClient ****
  Should aMule Command Line Client be built?                 yes
  Should aMule GUI Client be built?                          yes

  **** aMule WebServer ****
  Should aMule WebServer be built?                           no
  Should aMule WebServer GUI be built?                       no

  **** aMule ED2K Links Handler ****
  Should aMule ED2K Links Handler be built?                  yes

  **** aMuleLinkCreator ****
  Should aMuleLinkCreator GUI version (alc) be built?        yes
  Should aMuleLinkCreator for console (alcc) be built?       yes

  **** aMule Statistics ****
  Should C aMule Statistics (CAS) be built?                  yes
  Should aMule GUI Statistics (wxCas) be built?              yes

  **** General Libraries and Tools ****
  Should ccache support be enabled?                          yes
  Libraries aMule will use to build:
                                       wxWidgets             2.6.1
                                       crypto++              embedded
                                       libgd                 2.0.33
                                       zlib                  1.2.2.2
------------------------------------------------------------------------------------------------
« Last Edit: September 08, 2005, 05:39:31 PM by silk_road »
Logged

phoenix

  • Evil respawning bird from aMule Dev Team
  • Developer
  • Hero Member
  • *****
  • Karma: 44
  • Offline Offline
  • Posts: 2503
  • The last shadow you'll ever see
RE: a linking error when compiling aMule in FC4 with wxWidgets-2.6.1
« Reply #1 on: September 09, 2005, 05:46:28 AM »

Quote
Originally posted by silk_road
...
amule-UInt128.o   amule-CryptoPP.o   amule-MuleTrayIcon.o -L/software/wxWidgets-2.6.1/lib -pthread   -L/usr/X11R6/lib  /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_xrc-2.6.a /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_qa-2.6.a /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_html-2.6.a /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_adv-2.6.a /software/wxWidgets-2.6.1/lib/libwx_gtk2ud_core-2.6.a /software/wxWidgets-2.6.1/lib/libwx_baseud_xml-2.6.a /software/wxWidgets-2.6.1/lib/libwx_baseud_net-2.6.a /software/wxWidgets-2.6.1/lib/libwx_baseud-2.6.a -L/usr/lib -lSDL -lpthread -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lXinerama -lXxf86vm -lpng -ljpeg -ltiff -lexpat -lwxregexud-2.6 -lz -ldl -lm  -lz   -lbfd -liberty
amule-ChatSelector.o(.gnu.linkonce.r._ZTV12CChatSession+0x3b4): undefined reference to `non-virtual thunk to wxTextCtrlBase::overflow(int)'
amule-listctrl.o(.gnu.linkonce.r._ZTVN10MuleExtern14wxListTextCtrlE+0x3b4): undefined reference to `non-virtual thunk to wxTextCtrlBase::overflow(int)'
amule-MuleTextCtrl.o(.gnu.linkonce.r._ZTV13CMuleTextCtrl+0x3b4): undefined reference to `non-virtual thunk to wxTextCtrlBase::overflow(int)'
collect2: ld returned 1 exit status
...
The configure of wxWidgets:
------------------------------------------------------------------------------------------------
CFLAGS=-march=i686 CXXFLAGS=-march=i686  ./configure --prefix=/software/wxWidgets-2.6.1 --sysconfdir=/etc --localstat
edir=/var/local/ --enable-gui --enable-optimise --enable-debug --enable-stl --enable-intl --enable-config --enable-unicode --enable-fontmap --enable-log --with-sdl --with-opengl --with-gnomeprint --with-libjpeg --with-libpng --with-libtiff --with-regex --with-expat --with-gtk --disable-compat24 --disable-shared
------------------------------------------------------------------------------------------------

The configure of aMule:
------------------------------------------------------------------------------------------------
CFLAGS=-march=i686 CXXFLAGS=-march=i686  ./configure --prefix=/software/aMule-2.0.3 --sysconfdir=/etc --enable-optimize --enable-amulecmd --enable-amulecmdgui --enable-ccache --enable-wxcas --enable-cas --enable-alc --enable-alcc --with-wx-config=/software/wxWidgets-2.6.1/bin/wx-config

Seems to me that you are linking against the static libs, but you did not specify --enable-static in aMule configure. Maybe that is the problem.
Logged

silk_road

  • Newbie
  • Karma: 0
  • Offline Offline
  • Posts: 3
Re: a linking error when compiling aMule in FC4 with wxWidgets-2.6.1
« Reply #2 on: September 09, 2005, 06:28:21 PM »

I first tried without --disable-shared.  The linking problem occured. Then I kind of wondered whether it is caused by shared lib.  So I added this flag.  But the same problem  still exists.  X(

I ran out of ideas...  ?(
« Last Edit: September 09, 2005, 11:40:57 PM by silk_road »
Logged

phoenix

  • Evil respawning bird from aMule Dev Team
  • Developer
  • Hero Member
  • *****
  • Karma: 44
  • Offline Offline
  • Posts: 2503
  • The last shadow you'll ever see
Re: a linking error when compiling aMule in FC4 with wxWidgets-2.6.1
« Reply #3 on: September 10, 2005, 01:33:59 PM »

For me, it works like that:

$ ./configure --enable-debug --disable-optimise --enable-debug_flag --enable-debug_info --enable-debug_gdb --with-opengl --enable-gtk2 --enable-unicode --enable-largefile --prefix=/usr/local/wxWidgets-cvsu

Try to use it like this and see if it works. I had some problems in the past for messing too much with wxWidgets configure parameters.
Logged

silk_road

  • Newbie
  • Karma: 0
  • Offline Offline
  • Posts: 3
Re: a linking error when compiling aMule in FC4 with wxWidgets-2.6.1
« Reply #4 on: September 10, 2005, 05:05:02 PM »

Thanks!

The compilation went through smoothly.
Logged