Re: [Iup-users] Build error on Linux
Brought to you by:
scuri
|
From: Matt G. <ma...@gu...> - 2015-04-06 00:56:43
|
Hi, Antonio--
Okay, I have good news and bad news. The good news is that I was able to
identify (in general terms) the problem with iupgtk_button, and implemented
a workaround ... and eventually got the package to compile. The bad news is
that I encountered several more problems along the way.
On Sat, Mar 28, 2015 at 7:56 PM, Antonio Scuri <sc...@te...>
wrote:
> Tecmake: compiling iupgtk_button.c ...
>
>>
[.....]
> ../tecmake.mak:1516: recipe for target
>> '../obj/Linux316_64/iupgtk_button.o' failed
>> Makefile:11: recipe for target 'iup' failed
>> Makefile:9: recipe for target 'iup' failed
>>
>
> Sorry I can't identify the error. Can you try this command outside the
> Makefile, directly on the command line? Maybe one of the subdiretories
> failed to be created?
>
I don't know why the complete error message didn't appear when I posted
before, but the problem was related to the GtkAlignment type and associated
API (including the function gtk_button_set_alignment), which are deprecated
in GTK3.14. See https://developer.gnome.org/gtk3/unstable/GtkAlignment.html
.
My workaround was to remove DEFINES += GTK_DISABLE_DEPRECATED and DEFINES
+= GDK_DISABLE_DEPRECATED in src/config.mak. I'm not sure the latter change
was necessary, but I did it just in case.
The next problem was with iupview. First, compilation of the component
failed because it was trying to link against libcd.a, but I do not have any
static libraries installed. So I removed the line that reads USE_STATIC=Yes
in srcview/config.mak and tried to continue. [maybe there's a good reason
for this component to depend on static libraries, but this is problematic
on certain modern Linux distributions like Arch, because generally there
are no static libraries installed on the system at all]
In any case, compilation then failed with:
Tecmake: linking iupview ...
g++ -o ../bin/Linux316_64/iupview ../obj/iupview/Linux316_64/iup_view.o
-L/usr/lib -L../lib/Linux316_64 -L/usr/lib -L/usr/lib -liupim -liupimglib
-liupcontrols -llua -liupcd -liupgl -liup -lcd -lfontconfig -lim -lfreetype
-lz -lGLU -lGL -lm
/usr/lib/libim.so: undefined reference to `imBinFileReadReal'
collect2: error: ld returned 1 exit status
../tecmake.mak:1448: recipe for target '../bin/Linux316_64/iupview' failed
make[2]: *** [../bin/Linux316_64/iupview] Error 1
Makefile:11: recipe for target 'iupview' failed
make[1]: *** [iupview] Error 2
Makefile:45: recipe for target 'iupview' failed
make: *** [iupview] Error 2
==> ERROR: A failure occurred in build().
Aborting...
I then decided that iupview was probably not essential for my purposes, so
I removed it from 'do_all' in the main Makefile and continued again ...
Compilation then failed for one of the components in srclua5/, because it
was trying to link against ... sorry, I think it was libiupluacd53.so, but
didn't record the details ... in any case some library which appeared to
depend on Lua 5.3. That makes sense since I have only Lua 5.2 on my system.
But I found that srclua5/Makefile contained multiple targets like:
iuplua:
@$(TECMAKE_CMD) USE_LUA51=Yes
@$(TECMAKE_CMD) USE_LUA52=Yes
@$(TECMAKE_CMD) USE_LUA53=Yes
I suppose that is not supposed to cause problems, but I don't understand
why not. In any case, I removed all the lines containing USE_LUA51=Yes or
USE_LUA53=Yes, and the similar lines from
srcconsole/Makefile, and finally the package compiled.
Best regards,
Matt Gushee
|