[liblouis-liblouisxml] Re: Installation on Mac OS X bug?

  • From: Greg Williams <greg.williams.1978@xxxxxxxxx>
  • To: liblouis-liblouisxml@xxxxxxxxxxxxx
  • Date: Fri, 27 Aug 2010 11:25:57 -0500

Hi Bert,
I'm somewhat puzzled now. It appears that it is getting confused by what version of libxml2 to use. The include statements are "-I/usr/ include/libxml2", as though it should be installed in /usr, but in the dynamic linking when it explicitly defines the libraries, it uses "/ usr/local/lib/libxml2.dylib" which is the /usr/local library. From your earlier email BASE_DEPENDENCIES_CFLAGS = -I/usr/local/include/libxml2 -I/usr/local/ include/liblouis I would have expected the include to be "-I/usr/local/include/libxml2" which would have matched the dynamic linking. I wonder if you copied the earlier line incorrectly. My best suggestion for fixing the problem is to uninstall libxml2 from /usr/local and then configure and install liblouisxml. Then re- install libxml2 in /usr/local if you need it. They should be able to coexist with pkg-config picking up the one from /usr/local by default, but because of the order of path searching, it is possible that /usr and /usr/local are somehow getting searched in a different order at some step in the process. In short, I don't know exactly what is happening is happening, but uninstalling libxml2 from /usr/local should unconfuse it.
I hope that works,
Greg



On Aug 27, 2010, at 10:43 AM, Bert Frees wrote:

Thanks for your patience, Greg. Here is the output:


libtool: compile: gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. - DLBX_PATH=\"/usr/local/share/liblouisxml/lbx_files/\" - DLIBLOUIS_TABLES_PATH=\"/usr/local/share/liblouis/tables/\" -I/usr/ include/libxml2 -I/usr/local/include/liblouis -g -O2 -MT liblouisxml_la-transcriber.lo -MD -MP -MF .deps/liblouisxml_la- transcriber.Tpo -c transcriber.c -o liblouisxml_la-transcriber.o >/ dev/null 2>&1 mv -f .deps/liblouisxml_la-transcriber.Tpo .deps/liblouisxml_la- transcriber.Plo /bin/sh ../libtool --tag=CC --mode=link gcc -std=gnu99 -I/usr/ include/libxml2 -I/usr/local/include/liblouis -g -O2 -version-info 2:2:1 -no-undefined -L/usr/local/lib -llouis -lxml2 -lpthread -lz - lm -o liblouisxml.la -rpath /usr/local/lib liblouisxml_la- change_table.lo liblouisxml_la-makeContents.lo liblouisxml_la- examine_document.lo liblouisxml_la-liblouisxml.lo liblouisxml_la- paths.lo liblouisxml_la-readconfig.lo liblouisxml_la-semantics.lo liblouisxml_la-transcribe_cdataSection.lo liblouisxml_la- transcribe_chemistry.lo liblouisxml_la-transcribe_computerCode.lo liblouisxml_la-transcribe_document.lo liblouisxml_la- transcribe_graphic.lo liblouisxml_la-transcribe_math.lo liblouisxml_la-transcribe_music.lo liblouisxml_la- transcribe_paragraph.lo liblouisxml_la-transcriber.lo libtool: link: gcc -std=gnu99 -dynamiclib -o .libs/liblouisxml. 1.dylib .libs/liblouisxml_la-change_table.o .libs/liblouisxml_la- makeContents.o .libs/liblouisxml_la-examine_document.o .libs/ liblouisxml_la-liblouisxml.o .libs/liblouisxml_la-paths.o .libs/ liblouisxml_la-readconfig.o .libs/liblouisxml_la-semantics.o .libs/ liblouisxml_la-transcribe_cdataSection.o .libs/liblouisxml_la- transcribe_chemistry.o .libs/liblouisxml_la- transcribe_computerCode.o .libs/liblouisxml_la- transcribe_document.o .libs/liblouisxml_la- transcribe_graphic.o .libs/liblouisxml_la-transcribe_math.o .libs/ liblouisxml_la-transcribe_music.o .libs/liblouisxml_la- transcribe_paragraph.o .libs/liblouisxml_la-transcriber.o -L/usr/ local/lib /usr/local/lib/liblouis.dylib /usr/local/lib/libxml2.dylib -L/usr/lib /usr/lib/libiconv.dylib -lpthread -lz -lm - install_name /usr/local/lib/liblouisxml.1.dylib - compatibility_version 3 -current_version 3.2 -Wl,-single_module ld warning: in /usr/local/lib/libxml2.dylib, file is not of required architecture



Op 27-aug-10, om 17:34 heeft Greg Williams het volgende geschreven:

I installed libxml in /usr/local as well, and I show the same BASE_DEPENDENCIES lines as you, but I have no problem with the make step. Can you send me the output from make just before the error message? It reallyt looks as though it is finding the libraries just fine, so I don't know why it would be having a problem linking to them.
Greg

On Aug 27, 2010, at 9:22 AM, Bert Frees wrote:

I have liblouis in /usr/local and libxml2 in both /usr/local and / usr. The BASE_DEPENDENCIES_CFLAGS and BASE_DEPENDENCIES_LIBS lines are:

BASE_DEPENDENCIES_CFLAGS = -I/usr/local/include/libxml2 -I/usr/ local/include/liblouis
BASE_DEPENDENCIES_LIBS = -L/usr/local/lib -llouis -lxml2

I tried adding -lpthread -lz -lm to the second line but no luck, same error.

Bert

On 27/08/2010 13:24, Greg Williams wrote:
Hi Bert,
It's amazing how we forget the problems we have encountered after a long enough time. :) _xmlXPathRegisterNs should be linked to from the libxml2 library, so there is a problem with the linking. In the liblouisxml-2.2 directory run make distclean and then ./configure. If this completes successfully, look at the Makefile in the liblouisxml subdirectory. I think that there are two lines of concern; the lines assigning BASE_DEPENDENCIES_CFLAGS and BASE_DEPENDENCIES_LIBS. I have liblouis in /usr/local and libxml2 in /usr/, and for me the lines are BASE_DEPENDENCIES_CFLAGS = -I/usr/local/include/liblouis -I/usr/ include/libxml2 BASE_DEPENDENCIES_LIBS = -L/usr/local/lib -llouis -lxml2 - lpthread -lz -lm

Your lines should match the paths for where your libraries are installed for the linking to work correctly. Let me know where your libraries are and what those lines from your Makefile are. If the ./configure finishes without a problem, it should set up the linking correctly, but let's see. Unfortunately my knowledge of compilation is patchy, and so my help is a bit trial and error.
Greg

For a description of the software and to download it go to
http://www.jjb-software.com

For a description of the software and to download it go to
http://www.jjb-software.com

For a description of the software and to download it go to
http://www.jjb-software.com

For a description of the software and to download it go to
http://www.jjb-software.com

For a description of the software and to download it go to
http://www.jjb-software.com

Other related posts: