gpt4 book ai didi

macos - Xerces-C dylib 的 Mac OSX 兼容版本 (10.5-10.8)

转载 作者:行者123 更新时间:2023-12-04 04:53:20 25 4
gpt4 key购买 nike

是否可以构建 xerces-c-3.1.dylib 的版本?这将适用于多个版本的 OSX?理想情况下,10.4+,但 10.5+,甚至 10.6+ 都可以。怎么样?

我正在使用外部(命令行)程序(即不是我
控制),需要但不包括 dylib,目标是
不必在每台机器上重建它。

Xerces-C++ project没有预编译的二进制文件
OSX 所以我尝试通过以下方式从源代码(在 OSX 10.8.4 下)构建一个:

  • 下载最新source code (我用的是 xerces-c-3.1.1.tar.gz)
  • 运行 ./configure CFLAGS="-arch x86_64 -mmacosx-version-min=10.4" CXXFLAGS="-arch x86_64 -mmacosx-version-min=10.4"
  • 运行 make . libxerces-c-3.1.dylib文件可以在隐藏文件夹src/.lib中找到.
  • 将此文件复制到/usr/local/lib

  • 这个 dylab 在 10.8.4 和 10.7.5 机器上运行良好。问题是不起作用
    在 10.6.8(大概是更旧的)机器上。在 10.6.8 上,我收到以下错误:
    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 的兼容版本:

  • http://xerces.apache.org/xerces-c/download.cgi 下载并展开 Xerces 3.1 源代码压缩包
  • 从生成的目录中使用以下选项运行配置脚本:
    ./configure --enable-netaccessor-socket CFLAGS="-arch x86_64 -mmacosx-version-min=10.5"
    CXXFLAGS="-arch x86_64 -mmacosx-version-min=10.5"
  • 切换到 src目录
  • 运行 make
  • libxerces-c-3.1.dylib可以在 .../src/.libs/ 下找到并且(至少对于我的应用程序)应该复制到 /usr/local/lib/

  • 我通过编译 libxerces-c-3.1.dylib 的版本对此进行了测试。在 OSX 10.8.4 下使用来自 Xcode 4.6.3 的命令行工具。然后,我可以在 10.6、10.7 和 10.8(我可用的所有版本)下使用结果。该解决方案需要对 Xerces 配置设置进行两项更改:
  • 指定最低 osx 兼容版本。我选择了10.5,但是只能测试回10.6
  • 使用 curl 的替代方法来访问互联网。专门使用“套接字”网络访问器似乎有效。这是必要的,因为 10.6 中包含的 libcurl.4.dylib 版本最多只支持 6.0.0,但是在较新的系统上构建时预期的版本是 7.0.0。对于其他选项,请参阅来自以下位置的网络访问器表:the xerces-c build guide
  • 关于macos - Xerces-C dylib 的 Mac OSX 兼容版本 (10.5-10.8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17102409/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com