From: sfeam <sf...@us...> - 2018-03-11 06:41:28
|
On Sunday, 11 March 2018 14:04:19 Tatsuro MATSUOKA wrote: > Sorry I forgot to reply to beta-list > > ----- Original Message ----- > > > From: Dima Kogan > > To: gnuplot-beta > > Cc: > > Date: 2018/3/11, Sun 10:55 > > Subject: Re: Link fails on Ubuntu 16.04 (on WSL) due to undefined reference to symbol 'FcUcs4ToUtf8' > > > >T atsuro MATSUOKA <tma...@ya...> writes: > > > >> I pull the recent git repository and tried to build on Ubuntu 16.04 on > >> WSL. > >> > >> In linking gnuplot executable I see > >> > >> undefined reference to symbol 'FcUcs4ToUtf8' > > > > You're either not linking with the libfontconfig library, or you have > > the wrong library, or something. Send over the full build log if you > > want help debugging. > > > > ------------------------------------------------------------------------------ > > Check out the vibrant tech community on one of the world's most > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > You are right. In link stage, -lfontconfig is missing. > > c++ > -g -O2 -I/usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0 > -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ > -pthread -I/opt/fontconfig-2.12.93/include -I/usr/include/pango-1.0 > -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/cairo > -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include > -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 > -I/usr/include/libpng12 -DWXT_MONOTHREADED -fPIC -lcerf -o gnuplot > alloc.o axis.o breaders.o boundary.o color.o command.o contour.o > datablock.o datafile.o dynarray.o eval.o external.o fit.o gadgets.o > getcolor.o graph3d.o graphics.o help.o hidden3d.o history.o internal.o > interpol.o jitter.o libcerf.o matrix.o misc.o mouse.o multiplot.o > parse.o plot.o plot2d.o plot3d.o pm3d.o readline.o save.o scanner.o > set.o show.o specfun.o standard.o stats.o stdfn.o tables.o tabulate.o > term.o time.o unset.o util.o util3d.o variable.o version.o > wxterminal/wxt_gui.o wxterminal/gp_cairo.o > wxterminal/gp_cairo_helpers.o qtterminal/qt_term.o -lreadline > -lncurses -lz -lgd -lgd -llua5.3 -lcaca -L/usr/lib/x86_64-linux-gnu > -pthread -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_html-3.0 -lwx_gtk2u_qa-3.0 > -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0 -lwx_baseu_xml-3.0 > -lwx_baseu_net-3.0 -lwx_baseu-3.0 -lpangocairo-1.0 -lpango-1.0 > -lgobject-2.0 -lglib-2.0 -lcairo -lX11 -lQt5Network -lQt5Svg > -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5Core -lcaca -ldl -lm > -lcerf -lz -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -lcairo > -lglib-2.0 > > Adding manually -lfontcondig to the above, link is successful. > > Compressed config.log.bz2 is attached. > > Workaround is to add LIBS='-lfontconfig' to configure flag. I do not understand why the configure script is not doing that already. It tests for the library using this command: AC_SEARCH_LIBS(foo, fontconfig, , AC_DEFINE(HAVE_LIBFONTCONFIG,1,[ used for unicode codepoint->utf8 conversion ]),,) The documentation for AC_SEARCH_LIBS says that it will Search for a library defining function if it's not already available. [...] Prepend -llibrary to LIBS for the first library found to contain function, and run action-if-found. If the function is not found, run action-if-not-found. It must have found the function (since your code is trying to use it inside a conditional for HAVE_LIBFONTCONFIG), so it should have added -lfontconfig to the definition of LIBS. Why did it not? But also I do not understand for a second reason. As you say, libfontconfig is already used by various support libraries that gnuplot already uses (cairo pango-ft gdlib qt ...). So it must surely be linked in already because of the library dependencies for various terminals. I wonder that is not true on your machine. When I run ./configure it adds -lfontconfig to both TERM_LIBS and GTK_LIBS. Does this not happen on your setup? I am not very good at using or modifying the autoconf tools. I hope someone else can help explain or fix this. Ethan > > > I think that gnuplot so far uses fontconfig via external libraries (e.g. cairo, pango). > Is this Commit [7ecbe3] first event to use fontconfig directory. > Gnuplot check libfontconfig add -lfontconfig in library flag. > > Tatsuro > > > If it is in the case, libconfig > > Tatsuro |