[yoshimi] Re: 1.5.5 rc1
- From: Rob Couto <dbtx11@xxxxxxxxx>
- To: yoshimi@xxxxxxxxxxxxx
- Date: Tue, 5 Dec 2017 05:45:20 -0500
Hi again, all...
On 12/4/17, Will Godfrey <willgodfrey@xxxxxxxxxxxxxxx> wrote:
This was the first attempt with build options set for This CPU:
[ 51%]
Building CXX object CMakeFiles/yoshimi.dir/main.cpp.o
Linking CXX
executable yoshimi
/usr/bin/ld:
/usr/lib/i386-linux-gnu/libfltk.a(Fl_Preferences.o): undefined reference
to symbol 'dlopen@@GLIBC_2.1'
//lib/i386-linux-gnu/libdl.so.2: error
adding symbols: DSO missing from command line
collect2: error: ld
returned 1 exit status
CMakeFiles/yoshimi.dir/build.make:2103: recipe
for target 'yoshimi' failed
make[2]: *** [yoshimi] Error
1
CMakeFiles/Makefile2:122: recipe for target
'CMakeFiles/yoshimi.dir/all' failed
make[1]: ***
[CMakeFiles/yoshimi.dir/all] Error 2
Makefile:117: recipe for target
'all' failed
make: *** [all] Error 2
And this the second one with build options set for Core2_X86_64 (which is
what
the processor actually is):
make Linking CXX executable yoshimi
/usr/bin/ld: /usr/lib/i386-linux-gnu/libfltk.a(Fl_Preferences.o):
undefined reference to symbol 'dlopen@@GLIBC_2.1'
//lib/i386-linux-gnu/libdl.so.2: error adding symbols: DSO missing from
command line collect2: error: ld returned 1 exit status
CMakeFiles/yoshimi.dir/build.make:2103: recipe for target 'yoshimi'
failed make[2]: *** [yoshimi] Error 1 CMakeFiles/Makefile2:122: recipe
for target 'CMakeFiles/yoshimi.dir/all' failed make[1]: ***
[CMakeFiles/yoshimi.dir/all] Error 2 Makefile:117: recipe for target
'all' failed make: *** [all] Error 2
So it looks like a linker issue of some sort.
Indeed-- the big knowledge base (StackOverflow) shows this is caused
by not already linking to libdl.so. Before Andrew fixed up some
FreeBSD stuff, "-ldl" was added unconditionally but FreeBSD doesn't
need it, so it gets used now only if we're on Linux and the library
exists. Does anything show up in ccmake under LIBDL_LINUX after
'configure'? Of course they can force it the way I do with pthread
etc: hit 'T' for advanced options in ccmake and add -ldl to
CMAKE_EXE_LINKER_FLAGS. Probably. But cmake already "should" just find
it and add it to the pile of -lstuff. And even if that's oddly
necessary, it only treats one thing, but there's another.
I downloaded antiX-17_386-full and installed Stretch in a VM just to
see. If you know, please indicate which one will be better for
reproducing the problem ;) After apt-getting git and the list of *-dev
packages etc. in the manual, it built just fine-- -ldl was already in,
and LIBDL_LINUX in ccmake is set to /usr/lib/i386-linux-gnu/libdl.so
... the other thing is this: why is it linking to the static library
libfltk.a there? It exists in antiX but not at all on my system which
was never a problem. When I go back into the build directory on antiX,
'grep -rni fltk.a .' returns nothing, so cmake here simply doesn't
care about it, as expected. Are they trying to get a static build? Is
it maybe related to the release & flavor I chose?
HTH and sorry for top-posting a long line X(
--
Rob
Yoshimi source code is available from either:
https://sourceforge.net/projects/yoshimi
Or:
https://github.com/Yoshimi/yoshimi
Our list archive is at:
https://www.freelists.org/archive/yoshimi
To post, email to yoshimi@xxxxxxxxxxxxx
Other related posts: