Re: [Iup-users] Problem linking with scintilla
Brought to you by:
scuri
From: Anonymous <ano...@gm...> - 2023-07-24 22:03:07
|
I apologize for the typo: It could be defined anywhere but most likely is defined in GCC's crtbegin files. On 7/24/23 10:42, Anonymous wrote: > > Thanks for that link but there was no accepted answer to that > question. Looking it over I could see why: because the answers were > very vague and mostly incorrect. So I did a little more homework and > this is what I am going to pretend is the answer: > > The __dso_handle is a hidden global pointer to the current address > where the next destructor_ptr of a *.so file to be unloaded by the OS > will be stored. It could be defined anywhere but most likely should be > in the _fini section of the GCC's crtbegin files -- which I don't use, > hence I have to define it myself in my own code. That seemed to > resolve the compiling problem.Whether it works or not is another issue > altogether :) > > https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib---cxa-atexit.html > https://www.ic.unicamp.br/~islene/2s2008-mo806/libc/csu/dso_handle.c > https://alex-robenko.gitbook.io/bare_metal_cpp/compiler_output/static > > On 7/24/23 09:21, Antonio Scuri wrote: >> Try this one: >> >> https://stackoverflow.com/questions/34308720/where-is-dso-handle-defined >> >> Em seg., 24 de jul. de 2023 11:15, Anonymous >> <ano...@gm...> escreveu: >> >> Mucho gracias Antonio! You are so patient too! I am down to six >> errors I think, but it seems every time I fix one set of errors, >> a new set of errors pop up. I really don't know how to read "ld" >> yet, but what do you think of the following errors: >> >> ld: ./lib/libiup_scintilla.a(ExternalLexer.o): in function >> `_GLOBAL__sub_I_ExternalLexer.cxx': >> ExternalLexer.cxx:(.text.startup+0x19): undefined reference to >> `__dso_handle' >> ld: ExternalLexer.cxx:(.text.startup+0x37): undefined reference >> to `__dso_handle' >> ld: ./lib/libiup_scintilla.a(CaseConvert.o): in function >> `_GLOBAL__sub_I_CaseConvert.cxx': >> CaseConvert.cxx:(.text.startup+0x8): undefined reference to >> `__dso_handle' >> ld: CaseConvert.cxx:(.text.startup+0x93): undefined reference to >> `__dso_handle' >> ld: CaseConvert.cxx:(.text.startup+0x11f): undefined reference to >> `__dso_handle' >> ld: >> ./lib/libiup_scintilla.a(LexAda.o):LexAda.cxx:(.text.startup+0x44): >> more undefined references to `__dso_handle' follow >> >> Which additional library(s) do I need to add now (I'm currently >> at 19!!)? >> >> On 7/24/23 05:38, Antonio Scuri wrote: >>> IupScintilla is C only, but Scintilla itself is not. >>> >>> Em qua., 19 de jul. de 2023 às 16:14, Anonymous >>> <ano...@gm...> escreveu: >>> >>> I was down to 8,518 errors, but then I noticed something: >>> >>> ScintillaGTK.cxx:(.text+0x22c0): undefined reference to >>> `operator new(unsigned long)' >>> ld: ./lib/libiup_scintilla.a(ScintillaGTK.o): in function >>> `Scintilla::ScintillaGTK::RequestSelection(_GdkAtom*)': >>> >>> There are a lot of those kinds of errors which seems to >>> indicated that libiup_scintilla.a was compiled as a C++ >>> program and not a C program. I thought IUP was supposed to >>> be C-only and not a mix? Is there a C-only version of >>> libiup_scintilla.a that I can download somewhere? >>> >>> On 7/18/23 13:31, Anonymous wrote: >>>> >>>> Thanks for the advice. I already use the L switch for >>>> linking to all the IUP *.a files, i.e. -- *-L./lib*. That >>>> works fine for all files except for libiup_scintilla.a. For >>>> that you are telling me I need to link to specific files in >>>> GTK3. It seems to me GTK3 isn't meant to be called directly >>>> by programs, only by the OS (hence the reason it isn't in >>>> the $PATH), so I temporarily add the GTK3 directory to my >>>> path and then linked to them ... except that doesn't work. >>>> The (Debian) system says there is no libgtk-3, which when I >>>> go and look for it, there is only libgtk-3.so.0 which (to >>>> me) looks like a symbolic link, so I have to change >>>> *-lgtk-3* to *-l:libgtk-3.so.0* and so on and so forth for >>>> all 12 files the documentation listed: *-l:libgdk-3.so.0 >>>> -l:libgdk_pixbuf-2.0.so.0 -l:libpangocairo-1.0.so.0 >>>> -l:libpango-1.0.so.0 -l:libcairo.so.2 >>>> -l:libgobject-2.0.so.0 -l:libgmodule-2.0.so.0 >>>> -l:libglib-2.0.so.0 -l:libXext.so.6 -l:libX11.so.6 >>>> -l:libm.so.6*. Now it links to them but unfortunately, this >>>> leads to a new problem, namely: >>>> >>>> *ld: ./lib/libiup_scintilla.a(ScintillaGTKAccessible.o): >>>> undefined reference to symbol >>>> 'atk_object_notify_state_change'** >>>> **ld: /lib/x86_64-linux-gnu/libatk-1.0.so.0: error adding >>>> symbols: DSO missing from command line* >>>> >>>> Now what do I do? >>>> >>>> PS -- There is a typo in the doc: *gdk-3* should have been >>>> *-lgdk-3* >>>> PPS -- Look at that huge, gigantic command line! This is >>>> far, far easier to do in Windows than it is in Linux. >>>> >>>> On 7/17/23 05:56, Antonio Scuri wrote: >>>>> -L/my_path/iup/lib/Linux >>>>> >>>>> Em seg., 17 de jul. de 2023 às 09:04, Anonymous >>>>> <ano...@gm...> escreveu: >>>>> >>>>> On 7/17/23 04:49, Antonio Scuri wrote:There is no >>>>> libscintilla.a so I am stuck with libscintilla.so >>>>>> There is no sense in using GTK 2 anymore for recent >>>>>> systems. Focus on GTK 3. >>>>> >>>>> Yes sir, I understand. I will focus only on GTK3 from >>>>> now on. >>>>> >>>>> The problem I'm see is, none of the files mentioned in >>>>> the IUP documentation for static linking are visible, >>>>> even with GTK3 installed. How can I make the files >>>>> visible from the current working directory my source >>>>> code is in? >>>>> >>>>>> Em sáb., 15 de jul. de 2023 às 17:52, Anonymous >>>>>> <ano...@gm...> escreveu: >>>>>> >>>>>> Note, the documentation says to use -lpangox-2.0, >>>>>> but their is no libpangox-2.0.so >>>>>> <http://libpangox-2.0.so> file that exists in the >>>>>> GTK2 or GTK3 directory. Was it supposed to say >>>>>> -lpangoxft-1.0 or -lpangomm-1.4.so >>>>>> <http://lpangomm-1.4.so> or -lpangocairo-1.0.so.0? >>>>>> >>>>>> On 7/15/23 13:06, Anonymous wrote: >>>>>>> My problem is why won't GTK show up in my path, >>>>>>> even though the system works with GTK apps? Is >>>>>>> that normal? I could copy all the files needed >>>>>>> to a directory for static linking as >>>>>>> https://www.tecgraf.puc-rio.br/iup/ says to do, >>>>>>> >>>>>>> "For GTK, IUP uses the GTK, GDK, Pango, Cairo if >>>>>>> GTK 3, and GLib. To *statically* link an >>>>>>> application with IUP, use the following options >>>>>>> in the linker call (in the same order) ... >>>>>>> >>>>>>> *-lgtk-x11-2.0 -lgdk-x11-2.0* -lgdk_pixbuf-2.0*-lpangox-1.0* -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lXext -lX11 -lm (for GTK 2) >>>>>>> or >>>>>>> *-lgtk-3 gdk-3* -lgdk_pixbuf-2.0*-lpangocairo-1.0* -lpango-1.0*-lcairo* -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lXext -lX11 -lm (for GTK 3)" >>>>>>> >>>>>>> ... but do I really have to copy files from root >>>>>>> to a place where it can be found by my make >>>>>>> file? That doesn't make sense but if that is how >>>>>>> things are done in Linux, I will just have to do >>>>>>> it. I just hope those files are easy to find. >>>>>>> >>>>>>> On 7/15/23 12:31, Antonio Scuri wrote: >>>>>>>> Please take a look at the IUP documentation. >>>>>>>> You will find more info there: >>>>>>>> >>>>>>>> https://www.tecgraf.puc-rio.br/iup/ >>>>>>>> >>>>>>>> In Guide / Building Applications >>>>>>>> >>>>>>>> Best, >>>>>>>> Scuri >>>>>>>> >>>>>>>> >>>>>>>> Em sáb., 15 de jul. de 2023 às 12:54, Anonymous >>>>>>>> <ano...@gm...> escreveu: >>>>>>>> >>>>>>>> One last follow-up... >>>>>>>> >>>>>>>> If I go to >>>>>>>> https://packages.debian.org/bullseye/amd64/libgtk2.0-0/filelist, >>>>>>>> it shows me where the GTK files are located >>>>>>>> for Debian based systems. Why isn't this in >>>>>>>> the PATH? Why do I have GTK programs that >>>>>>>> work if it isn't in the PATH? Does that >>>>>>>> mean I have to link to the GTK library >>>>>>>> using a hard-coded path? That's a problem >>>>>>>> since that means that since Debian doesn't >>>>>>>> follow the standard Linux filesystem >>>>>>>> hierarchy standard (which says GTK should >>>>>>>> be installed in /usr/lib/ and not >>>>>>>> /usr/lib/x86_64-linux-gnu/) if I hard-code >>>>>>>> the path name in the linker for GTK, it >>>>>>>> will only work for Debian systems. >>>>>>>> >>>>>>>> For being so user friendly, MX Linux sure >>>>>>>> is developer unfriendly. >>>>>>>> >>>>>>>> On 7/15/23 08:29, Anonymous wrote: >>>>>>>>> >>>>>>>>> That's a typo. It actually says it has >>>>>>>>> both installed but I can't find either one >>>>>>>>> on my computer. >>>>>>>>> >>>>>>>>> On 7/15/23 08:23, Anonymous wrote: >>>>>>>>>> >>>>>>>>>> Ola, >>>>>>>>>> >>>>>>>>>> Much thanks Antonio! I went from 13381 >>>>>>>>>> errors to two, but these two errors look >>>>>>>>>> ominous... >>>>>>>>>> >>>>>>>>>> ld: ./lib/libiup.a(iupgtk_toggle.o): >>>>>>>>>> undefined reference to symbol >>>>>>>>>> 'gtk_toggle_button_new' >>>>>>>>>> ld: >>>>>>>>>> /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0: >>>>>>>>>> error adding symbols: DSO missing from >>>>>>>>>> command l >>>>>>>>>> ine >>>>>>>>>> >>>>>>>>>> Is that one error or two? My system does >>>>>>>>>> not have a file named libgtk-x11-2.0.0, >>>>>>>>>> so I tried... >>>>>>>>>> >>>>>>>>>> |dpkg -l libgtk* | grep -e '^i' | grep -e >>>>>>>>>> 'libgtk-*[0-9]' and it returned... |ii libgtk-3-0:amd64 3.24.24-4+deb11u3 amd64 GTK graphical user interface library >>>>>>>>>> ii libgtk-3-common 3.24.24-4+deb11u3 all common files for the GTK graphical user interface library >>>>>>>>>> ii libgtk2.0-0:amd64 2.24.33-2 amd64 GTK graphical user interface library - old version >>>>>>>>>> ii libgtk2.0-common 2.24.33-2 all common files for the GTK graphical user interface library >>>>>>>>>> ii libgtk3-perl 0.038-1 all Perl bindings for the GTK+ graphical user interface library >>>>>>>>>> || >>>>>>>>>> >>>>>>>>>> Oops! It looks like IUP will only work >>>>>>>>>> with GTK2 and that says I have GTK3, >>>>>>>>>> right? Is there any workaround for that >>>>>>>>>> or am I screwed? >>>>>>>>>> >>>>>>>>>> Signed, >>>>>>>>>> Andrew >>>>>>>>>> >>>>>>>>>> On 7/15/23 05:50, Antonio Scuri wrote: >>>>>>>>>>> The scintilla library itself is >>>>>>>>>>> missing. IupScintilla is IUP using >>>>>>>>>>> Scintilla. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Em sáb., 15 de jul. de 2023 às 09:43, >>>>>>>>>>> Anonymous <ano...@gm...> >>>>>>>>>>> escreveu: >>>>>>>>>>> >>>>>>>>>>> Ola, >>>>>>>>>>> >>>>>>>>>>> I'm still new to Linux so forgive me >>>>>>>>>>> if I ask what might be stupid >>>>>>>>>>> questions. I cannot link to >>>>>>>>>>> scintilla using IUP. I get a slew of >>>>>>>>>>> error >>>>>>>>>>> like this: >>>>>>>>>>> >>>>>>>>>>> ld: >>>>>>>>>>> ./lib/libiup_scintilla.a(ScintillaGTK.o): >>>>>>>>>>> in function >>>>>>>>>>> `Scintilla::ScintillaGTK::ModifyScrollBars(long, >>>>>>>>>>> long)': >>>>>>>>>>> ScintillaGTK.cxx:(.text+0x70d): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_get_upper' >>>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x737): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_get_page_size' >>>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x77b): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_set_upper' >>>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x790): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_set_page_size' >>>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x7a6): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_set_page_increment' >>>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x7da): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_get_upper' >>>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x81a): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_get_page_size' >>>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x855): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_set_upper' >>>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x86a): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_set_page_size' >>>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x87f): >>>>>>>>>>> undefined reference to >>>>>>>>>>> `gtk_adjustment_set_page_increment' >>>>>>>>>>> >>>>>>>>>>> And etc, etc, etc for 13381 lines. >>>>>>>>>>> >>>>>>>>>>> I presume that means a dependency is >>>>>>>>>>> missing but what dependency would >>>>>>>>>>> that be? Or it might be something >>>>>>>>>>> else? Does anyone know? >>>>>>>>>>> >>>>>>>>>>> Signed, >>>>>>>>>>> Andrew >>>>>>>>>>> >>>>>>>>>>> ╔═════════════════════╗ >>>>>>>>>>> ║ Environment ║ >>>>>>>>>>> ╟─────────────────────╢ >>>>>>>>>>> ║ IUP v3.30 ║ >>>>>>>>>>> ║ IM v3.12 ║ >>>>>>>>>>> ║ CD v5.11.1 ║ >>>>>>>>>>> ║ Mx Linux v21.3 ║ >>>>>>>>>>> ║ KDE_x64 Wildflower ║ >>>>>>>>>>> ╚═════════════════════╝ >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Iup-users mailing list >>>>>>>>>>> Iup...@li... >>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Iup-users mailing list >>>>>>>>>>> Iup...@li... >>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>>>>> _______________________________________________ >>>>>>>> Iup-users mailing list >>>>>>>> Iup...@li... >>>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Iup-users mailing list >>>>>>>> Iup...@li... >>>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>>> |