[xsd-users] [XSD] Mac binaries compatibility problem

Jose jc.fernandez.navarro at gmail.com
Fri Oct 14 10:45:05 EDT 2011


Well, I have gotten it to work under Mac.

The compilation flags that I used are :

./configure --disable-dependency-tracking --disable-netaccessor-curl
--enable-transcoder-iconv --enable-msgloader-inmemory CFLAGS="-Os -arch i386
-arch x86_64" CXXFLAGS="-Os -arch i386 -arch x86_64"

Im still getting the undefined references to...all the xercesc functions
when I link in Windows so I am still trying to find the right flags
combination. I will try now to compile it with cgwin instead of mingw.

Jose


2011/10/14 Jose <jc.fernandez.navarro at gmail.com>

> Hi Boris,
>
> Ohh Yes, I'm sorry for not replying to everyone. I  will never get used to
> Thunderbird.
>
> Your solution worked out but I'm still having the linking problems which
> are obviously not related to your solution.
>
> the output is :
>
> Undefined symbols for architecture x86_64:
>   "_curl_global_cleanup", referenced from:
>       xercesc_3_1::CurlNetAccessor::cleanupCurl()       in
> libxerces-c.a(CurlNetAccessor.o)
>       xercesc_3_1::CurlNetAccessor::~CurlNetAccessor()in
> libxerces-c.a(CurlNetAccessor.o)
>       xercesc_3_1::CurlNetAccessor::~CurlNetAccessor()in
> libxerces-c.a(CurlNetAccessor.o)
>   "_curl_global_init", referenced from:
>       xercesc_3_1::CurlNetAccessor::initCurl()      in
> libxerces-c.a(CurlNetAccessor.o)
>       xercesc_3_1::CurlNetAccessor::CurlNetAccessor()in
> libxerces-c.a(CurlNetAccessor.o)
>   "_curl_multi_init", referenced from:
>
> xercesc_3_1::CurlURLInputStream::CurlURLInputStream(xercesc_3_1::XMLURL
> const&, xercesc_3_1::XMLNetHTTPInfo const*)in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_easy_init", referenced from:
>
> xercesc_3_1::CurlURLInputStream::CurlURLInputStream(xercesc_3_1::XMLURL
> const&, xercesc_3_1::XMLNetHTTPInfo const*)in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_easy_setopt", referenced from:
>
> xercesc_3_1::CurlURLInputStream::CurlURLInputStream(xercesc_3_1::XMLURL
> const&, xercesc_3_1::XMLNetHTTPInfo const*)in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_slist_append", referenced from:
>
> xercesc_3_1::CurlURLInputStream::CurlURLInputStream(xercesc_3_1::XMLURL
> const&, xercesc_3_1::XMLNetHTTPInfo const*)in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_slist_free_all", referenced from:
>
> xercesc_3_1::CurlURLInputStream::CurlURLInputStream(xercesc_3_1::XMLURL
> const&, xercesc_3_1::XMLNetHTTPInfo const*)in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_multi_add_handle", referenced from:
>
> xercesc_3_1::CurlURLInputStream::CurlURLInputStream(xercesc_3_1::XMLURL
> const&, xercesc_3_1::XMLNetHTTPInfo const*)in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_easy_getinfo", referenced from:
>
> xercesc_3_1::CurlURLInputStream::CurlURLInputStream(xercesc_3_1::XMLURL
> const&, xercesc_3_1::XMLNetHTTPInfo const*)in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_multi_perform", referenced from:
>       xercesc_3_1::CurlURLInputStream::readMore(int*)   in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_multi_info_read", referenced from:
>       xercesc_3_1::CurlURLInputStream::readMore(int*)   in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_multi_fdset", referenced from:
>       xercesc_3_1::CurlURLInputStream::readMore(int*)   in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_multi_remove_handle", referenced from:
>       xercesc_3_1::CurlURLInputStream::~CurlURLInputStream()in
> libxerces-c.a(CurlURLInputStream.o)
>       xercesc_3_1::CurlURLInputStream::~CurlURLInputStream()in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_easy_cleanup", referenced from:
>       xercesc_3_1::CurlURLInputStream::~CurlURLInputStream()in
> libxerces-c.a(CurlURLInputStream.o)
>       xercesc_3_1::CurlURLInputStream::~CurlURLInputStream()in
> libxerces-c.a(CurlURLInputStream.o)
>   "_curl_multi_cleanup", referenced from:
>       xercesc_3_1::CurlURLInputStream::~CurlURLInputStream()in
> libxerces-c.a(CurlURLInputStream.o)
>       xercesc_3_1::CurlURLInputStream::~CurlURLInputStream()in
> libxerces-c.a(CurlURLInputStream.o)
> ld: symbol(s) not found for architecture x86_64
>
> I have tried many compilations flabs to compile xercesc but I always get
> his error.
>
> Whereas in windows I get hundreds of : "undefined reference to
> ..'_imp__ZN11xercesc_3_11XXXXXXX ...." where XXX are names of functions.
> I'm sorry I could not copy and paste the output because it has been run on a
> virtual machine. I have tried the same in windows, compile xercesc with
> different compilation flags (always under mingw msys) .
>
> I wish I did not have to make this app compatible to windows and mac
> because it works well in Linux but well... It should be possible since I
> don't have many dependencies.
>
> Thank you so much again.
>
> Regards
>
> Jose
>
>
>
> 2011/10/14 Boris Kolpackov <boris at codesynthesis.com>
>
>> Hi Jose,
>>
>> In the future please keep your replies CC'ed to the xsd-users mailing
>> list as discussed in the posting guidelines:
>>
>> http://www.codesynthesis.com/support/posting-guidelines.xhtml
>>
>>
>> Jose <jc.fernandez.navarro at gmail.com> writes:
>>
>> > But the problem is that the xdr.h file in MAC does not have int8
>> defined.
>>
>> Yes, you are correct. I tried the 'binary/xdr' example and it worked. But
>> it doesn't use any 8-bit integers so it didn't pick this up.
>>
>>
>> > I can get a work around like this : "not really the best solution since
>> > technically int8 is not equal to int"
>>
>> No, this is not a good workaround since the resulting binary
>> representation
>> will be incompatible with other platforms (it will use 4 bytes while other
>> platforms will expect 1 byte). A better workaround would be to use the
>> xdr_char() and xdr_u_char() functions. I have re-implemented the fix and
>> updated the archive. Can you try it and see if it works for you?
>>
>> http://www.codesynthesis.com/~boris/tmp/xsd/xsd-3.3.0-macosx-xdr.tar.bz
>>
>>
>> > So now it builds okay although I have gotten dependency errors in the
>> > linking with xercesc, I actually have the same problem when I compile it
>> in
>> > windows and I can not really find a solution because the xercesc
>> libraries
>> > that I am using have been compiled for either windows and mac with the
>> flags
>> > indicated in the website. Do you know if something special has to be
>> done to
>> > compile and/or link xercesc libraries in Windows and Mac, specially
>> while
>> > using it with XSD??
>>
>> No, things normally work out of the box. It is hard for me to say what's
>> going on without seeing the actual diagnostics (for both Mac OS X and
>> Windows).
>>
>> Boris
>>
>
>


More information about the xsd-users mailing list