2016-02-02 67 views
1

我試圖鏈接的Xerces作爲靜態庫,但我有一些問題靜態庫...鏈接Xerces的Mac OS X的

Undefined symbols for architecture x86_64: 
    "_CFRelease", referenced from: 
     xercesc_3_1::MacOSUnicodeConverter::upperCase(unsigned short*) in libxerces-c.a(MacOSUnicodeConverter.o) 
     xercesc_3_1::MacOSUnicodeConverter::lowerCase(unsigned short*) in libxerces-c.a(MacOSUnicodeConverter.o) 
    "_CFStringCreateMutableWithExternalCharactersNoCopy", referenced from: 
     xercesc_3_1::MacOSUnicodeConverter::upperCase(unsigned short*) in libxerces-c.a(MacOSUnicodeConverter.o) 
     xercesc_3_1::MacOSUnicodeConverter::lowerCase(unsigned short*) in libxerces-c.a(MacOSUnicodeConverter.o) 
    "_CFStringLowercase", referenced from: 
     xercesc_3_1::MacOSUnicodeConverter::lowerCase(unsigned short*) in libxerces-c.a(MacOSUnicodeConverter.o) 
    "_CFStringUppercase", referenced from: 
     xercesc_3_1::MacOSUnicodeConverter::upperCase(unsigned short*) in libxerces-c.a(MacOSUnicodeConverter.o) 
    "_CreateTextEncoding", referenced from: 
     xercesc_3_1::MacOSUnicodeConverter::discoverLCPEncoding() in libxerces-c.a(MacOSUnicodeConverter.o) 
     xercesc_3_1::MacOSUnicodeConverter::makeNewXMLTranscoder(unsigned short const*, xercesc_3_1::XMLTransService::Codes&, unsigned long, unsigned int, xercesc_3_1::MemoryManager*) in libxerces-c.a(MacOSUnicodeConverter.o) 
    ... 

我試着用不同的選項來運行配置 ,但所有的嘗試都沒用。

有沒有人有同樣的問題?

+0

也許這是這個原因造成的:https://xerces.apache.org/xerces-c/build-3.html _IF您鏈接您的應用程序的靜態Xerces-C++庫,那麼您將需要使用爲定義DLL導入/導出機制而定義的XERCES_STATIC_LIBRARY預處理器宏編譯應用程序._ –

回答

0

我在構建xalan時遇到了這個問題。我通過將-framework CoreServices -framework CoreFoundation -lcurl傳遞給鏈接器來修復它。

的Xalan的Makefile.incl 76號線:

XERCES_LIB = -L$(XERCESCROOT)/lib -lxerces-c -framework CoreServices -framework CoreFoundation -lcurl