Re: arts fails to build on OpenSolaris
Stefan Teleman <[email protected]>
| Newsgroups | gmane.comp.kde.solaris |
|---|---|
| Organization | Disorganized |
| Message-ID | <[email protected]> |
On Sunday 05 March 2006 08:14, you wrote: > It fixed the problem described above, however it now fails in the > following stage: > > Making all in soundserver > gmake[2]: Entering directory > `/opt/pkg.obj/audio/arts/work.e450-lan/arts-1.5.1/s oundserver' > Undefined first referenced > symbol in file > Arts::EnumDef Arts::Object_skel::_queryEnum(const std::string &) > .libs/kmedia2.o (symbol belongs to implicit dependency > /opt/pkg.obj/audio/arts/work.e450-lan/a > rts-1.5.1/mcop/.libs/libmcop.so.1) > > Maybe libmcop.so.1 is not included during link stages in the > Makefile? Any idea how to fix this? You are right, libmcop.so.1 was not included at link stage. The easy way to fix this is to add $(top_builddir)/mcop/libmcop.la to the soundserver_LDADD directive in the Makefile (since KDE uses the autotools to compile and link, you have to give libtool the *.la wrapper for linking). Do not include a relative path (like ../mcop/libmcop.la), because the linker might write the dependency as a relative path as well (like ../../libmcop.so.1), which will result in "file not found" errors at run time when it resolves the library dependencies. The harder way to fix this is to fix it is in Makefile.am, but that will regenerate the Makefiles, and you would have to deal with autoconf macros, which are a major pain. :-) The bad news: this happens quite often when building KDE (3.4.x or 3.5.x). The good news: for KDE4, the build system will change, most likely it will be cmake which is much friendlier. --Stefan -- Stefan Teleman 'Nobody Expects the Spanish Inquisition' [email protected] -Monty Python ___________________________________________________ This message is from the kde-solaris mailing list. Account management: https://mail.kde.org/mailman/listinfo/kde-solaris. Archives: http://lists.kde.org/. More info: http://www.kde.org/faq.html.