Re: [Iup-users] Problem linking with scintilla
Brought to you by:
scuri
From: Antonio S. <ant...@gm...> - 2023-07-24 12:38:58
|
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 file that exists in the GTK2 or GTK3 directory. Was it >>> supposed to say -lpangoxft-1.0 or -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 lis...@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 lis...@li...https://lists.sourceforge.net/lists/listinfo/iup-users >>> >>> |