- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序需要版本 7 的 libcurl,并且在 Lion 上运行良好,但在 Snow Leopard 上的 libcurl.dylib 版本不起作用(我的 *MKD 命令需要 * 前缀)。
我尝试了各种方法将 Lion 版本的 libcurl.dylib 包含在我的包中,包括将副本放入 (1) 应用程序文件夹、(2) Contents 文件夹、(3) MacOS 文件夹和 (4) Resources 文件夹,但没有成功。甚至四份,每个文件夹一份。 (仍然转到/usr/lib。)
我还尝试将 Xcode 4.2 中的“Runpath Search Paths”设置为“.”,但这没有帮助。
所以,问题#1 是,如何强制 Snow Leopard 上的应用程序使用我包含在包中的 dylib? (安装新的 libcurl.dylib 是不可能的——这个应用程序将进入 Mac App Store。)
通过实验,我用 Lion 中的文件替换了 Snow Leopard 系统上的/usr/lib/libcurl.dylib,并且该应用程序可以正常运行。所以我知道如果我能让应用程序使用这个库,它就会正常工作。
我还尝试构建一个静态 libcurl.a,它可以工作(使用configure、make 和 make install),但在尝试链接该应用程序时仍然引用了 dylib。然后,我将静态库的名称更改为 libcurl-static.a,但随后出现链接器错误,因为其他 dylib 中的数十个符号未定义。我尝试在构建中包含更多 dylib,以解决这些问题,但 libcurl 所需的 dylib 列表显然很长。我尝试使用 otool 来找出所需的内容,但没有一个选项向我显示任何有用的信息。
问题 #2 是:如何将我的应用程序与 libcurl 静态链接?
(我有一个无法使用 *MKD 的解决方法,如果目录已经存在,它会忽略错误,但它涉及太多额外的 FTP 操作,效率低下。我使用 *MKD 的方法效果很好,而且速度很快.)
不需要建议我去另一个 FTP 库,因为我已经想到了。不太想这样做,因为 libcurl 在 Lion 上运行良好。如果我能让它使用我在 Snow Leopard 上提供的库就好了。
最佳答案
1) 您必须更改库的 ID(在链接之前)- 默认情况下它将指向 /usr/lib/
这不是您运送它的地方。请参阅otool -L
:
$ otool -L /usr/lib/libcurl.4.dylib | head -n 2
/usr/lib/libcurl.4.dylib:
/usr/lib/libcurl.4.dylib (compatibility version 6.0.0, current version 6.1.0)
更改您使用的 ID install_name_tool -id new/path/libcurl.4.dylib your/copy/of/libcurl.4.dylib
,特别是您可能想使用 @executable_path/
与可执行文件的位置相对应的前缀。或者,您可以使用 install_name_tool -change /usr/lib/libcurl.4.dylib @executable_path/libcurl.4.dylib yourapp
更改编译的二进制文件中的路径。
2) 您可以使用库名称 so 而不是 -lcurl
来强制静态链接。您只需使用 libcurl.a
(如果不在当前目录中,则使用完整路径) - 我强烈推荐该路径,它会减少一些麻烦。
PS:我不确定你是否可以合法地发布 Apple 的 libcurl(你可以,我不知道) - 但从 Apple 的源代码直接为 SL 编译它是非常容易的,这可以避免任何 Lion 问题。
关于xcode - 强制 OS X 应用程序使用特定的 libcurl.dylib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353420/
我认为我弄乱了 libxml2.dylib、libz.dylib、libicucore.dylib 和 libc++.dylib 文件,然后 1. 在项目中显示为红色,2. 导致链接器错误。 并在与库
我正在研究 SDK,试图了解实际包含的内容。 我注意到 dylibs 有时会以多个版本发布,例如 ls /Applications/Xcode.app/Contents/Developer/Platf
我在评论中提出了这个问题,但这似乎是一个值得单独提问的问题。 我有一个项目在三个不同的 XCode 安装和两个不同的 iOS SDK 安装之间共享。目前,统一所涉及的开发人员不是一种选择。 当我安装
我正在多次加载 dylib 并尝试理解是什么让这些符号不同。 这是我的步骤: 使用以下入口点构建 lib_a.dylib: FactoryA : IFActory () {} extern "C" I
我正在关注 this tutorial 教程说明要添加 libz.1.2.3.dylib. 库,但是因为我下载了新的或旧的库(我不知道我的库是新的还是旧的教程中的库,但 99% 是较新的)。所以,当我
有没有办法使用 dylib 的路径查找其版本?我正在寻找接受与 dlopen 相同参数的东西。我查看了 NSVersionOfRunTimeLibrary,但从我阅读的文档来看,它似乎获取了当前 dy
我正在从源代码构建 cyrus sasl2 库。库安装在/usr/local/lib 中, header 安装在/usr/local/include/sasl 中,这是正确的。 但是,当我运行尝试使用
我确定 .A 意味着什么,但搜索它只会产生噪音。请赐教。 最佳答案 哦,它们是一样的。 -rwxr-xr-x 1 root wheel 4969408 Sep 25 16:06 libicuco
我已经从我的 iOS 应用项目构建了一个 ipa 包。使用 zip 打开 .ipa 文件后。我发现这里有很多 swift 支持的动态库。 我想知道 libswiftFoundation.dylib 和
在带有 gcc-5.2 的 g++ 的 mac os x 下,我正在尝试执行以下操作:创建一个 dylib,导出由 header tmp8bis_dylib.h 定义的类和来源 tmp8bis_dyl
我正在使用 py2app 从 Python 代码创建一个应用程序。 一切顺利,直到我运行 setup.py,然后在它运行的最后我收到这条消息:“ValueError: '/Users/(my_comp
我有一个旧的 iOS Xcode 项目,我在其中使用了 libxml2.dylib 和 libresolv.9.dylib。安装 XCode7 后。 我找不到文件,也不知道去哪里搜索。有人可以帮助我吗
我开始在我正在开发的应用程序中使用 SQLite 数据库。我还没有遇到问题,但是来自 this tutorial 的早期步骤之一正在链接 SQLite3 框架。本教程需要 libsqlite3.0.d
我正在为 Xamarin.Mac 创建绑定(bind)/MonoMac 。我想嵌入 dylib在生成的dll中就像 Xamarin.iOS 上所做的那样与 [LinkWith]属性。 可以这样做吗?如
C++ dylib 暴露如下 __attribute__((visibility("default"))) int addNumber(int number) { return 0; } 在我
目前我正在使用 libxml2.dylib 来解析 XML 现在我想转移到 libxml2.2.dylib。那么,我会在配置和编码方面做什么样的改变? 最佳答案 Xcode 4.5(和重要的 iOS6
在使用 matplotlib 时获取错误信息: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already ini
我已经创建了一个Python应用程序,并使用Pyinstaller将其构建到Unix可执行文件中。在我尝试对应用程序进行代码签名之前,应用程序运行得很好。在代码签名之后,我在尝试运行可执行文件时收到以
我正在尝试在应用程序上使用 Parse,我是 swift 的新手。但是我下载了 Xcode 7,似乎 libz.dylib libsqlite3.dylib 丢失了,当我编译和构建它时,它已成功完成,
我在尝试在任何脚本上使用 Pilow 时遇到此错误: File "/Users/antonio/WWW/myproj/myproj/functions.py", line 12, in
我是一名优秀的程序员,十分优秀!