Macos Xerces-C动态库的Mac OSX兼容版本(10.5-10.8)
是否可以构建一个能与多个版本的OSX配合使用的xerces-c-3.1.dylib版本?理想情况下,10.4+,但10.5+,甚至10.6+都可以。怎么做 我正在使用一个外部(命令行)程序(即不是一个我 控件),需要但不包括动态库,目标是 不必在每台机器上重建它 没有针对的预编译二进制文件 因此,我尝试通过以下方式从源代码(在OSX 10.8.4下)构建一个:Macos Xerces-C动态库的Mac OSX兼容版本(10.5-10.8),macos,xerces-c,Macos,Xerces C,是否可以构建一个能与多个版本的OSX配合使用的xerces-c-3.1.dylib版本?理想情况下,10.4+,但10.5+,甚至10.6+都可以。怎么做 我正在使用一个外部(命令行)程序(即不是一个我 控件),需要但不包括动态库,目标是 不必在每台机器上重建它 没有针对的预编译二进制文件 因此,我尝试通过以下方式从源代码(在OSX 10.8.4下)构建一个: 下载最新版本(我使用xerces-c-3.1.1.tar.gz) 运行/configure CFLAGS=“-arch x86\u 64
/configure CFLAGS=“-arch x86\u 64-mmacosx version min=10.4”cxflags=“-arch x86\u 64-mmacosx version min=10.4”
make
。可以在隐藏文件夹src/.lib
中找到libxerces-c-3.1.dylib
文件dyld: Library not loaded: /usr/lib/libcurl.4.dylib
Referenced from: /usr/local/lib/libxerces-c-3.1.dylib
Reason: Incompatible library version: libxerces-c-3.1.dylib requires
version 7.0.0 or later, but libcurl.4.dylib provides version 6.0.0
有什么想法吗?找到了
要构建libxerces-c-3.1.dylib的兼容版本,请执行以下操作:
src
目录make
libxerces-c-3.1.dylib
可在../src/.libs/
下找到,并且(至少对于我的应用程序而言)应复制到/usr/local/lib/
libxerces-c-3.1.dylib
,以此来测试这一点。然后,我可以使用10.6、10.7和10.8下的结果(所有可用版本)。该解决方案需要对Xerces配置设置进行两次更改:
- 指定osx兼容的最低版本。我选择了10.5,但只能测试回10.6
- 使用curl的另一种方法访问internet。特别是使用“套接字”netaccessor似乎是可行的。这是必要的,因为10.6中包含的libcurl.4.dylib版本最多只支持6.0.0,但在较新系统上构建时预期的版本是7.0.0。有关其他选项,请参见以下目录中的net accessor表: