问题标签 [dylib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - 如何使用 Xcode 创建动态库 (dylib)?
我在 Xcode 中构建了一些命令行实用程序(纯 C,没有 Cocoa)。我希望他们所有人都使用我定制的 libpng 版本,并且我想通过在所有可执行文件之间共享一个库的副本来节省空间(我不介意.dylib
与它们一起重新分发)。
我需要做一些魔术来获取 libpng 导出符号吗?
“Link Binary With Libraries”是否静态构建阶段链接?
Apple 的文档提到在运行时加载库dlopen
,但是我如何让 Xcode 创建可执行文件而不抱怨缺少符号?
我想我已经弄清楚了:
libpng 没有正确链接,因为我已经构建了 32/64 位可执行文件和 32 位库。库和可执行文件的构建设置必须匹配。
libpng 的 config.h 需要有大量的定义,例如
#define FEATURE_XXX_SUPPORTED
“Link Binary With Libraries”构建阶段可以很好地处理动态库,并且
DYLD_FALLBACK_LIBRARY_PATH
环境变量对于.dylib
从应用程序包加载 s 是必需的。
macos - 如何将 LC_LOAD_DYLIB 命令插入 Mach-O 二进制文件 (OSX)
我正在寻找用一些代码修补一块废弃软件。
该软件是基于碳的,所以我不能使用 InputManager(至少,我认为我不能)。我的想法是添加对 mach-o 标头的 dylib 引用,并在调用初始化例程时启动一个新线程。
我已经使用 hexeditor 添加适当的加载命令 (LC_LOAD_DYLIB) 来处理 mach-o 标头。
otool 报告了我希望看到的内容,因此我相当有信心该文件的格式正确。
但是,启动二进制文件会给我以下错误
我能猜到这意味着我需要修改 LC_ SYMTAB 或 LC_ DYNSYMTAB 部分......
有人有想法么?
c++ - 如何在 Xcode 中链接动态库?
我目前正在 Qt 中开发一个程序,它使用库 libqextserialport.1.dylib。
我构建它并在 x-code 中运行它会吐回来:
该库位于 /Users/samuelreh/Desktop/QtOpenCV/qextserialport/build/。
我可以通过更改到可执行文件夹 /Users/samuelreh/Desktop/QtOpenCV/build/Debug/QtOpenCV.app/Contents/MacOS/ 并输入:
install_name_tool -change libqextserialport.1.dylib /Users/samuelreh/Desktop/QtOpenCV/qextserialport/build/libqextserialport.1.dylib QtOpenCV
我知道除此之外可能还有很多解决方案。有人知道 x-code 中最好的/最优雅的/最容易做到的吗?
macos - 在 dylib 中设置字符集符号
我使用旧的 Powerbook G4。尝试更新 macports (sudo port -d selfupdate) 时存在以下错误。
dyld:惰性符号绑定失败:找不到符号:_locale_charset 引用自:/usr/bin/rsync 预期在:/usr/lib/libiconv.2.dylib
dyld:找不到符号:_locale_charset 引用自:/usr/bin/rsync 预期在:/usr/lib/libiconv.2.dylib
如何设置 Symbol _locale_charset?有人有好主意吗?
iphone - iphone 警告 libsqlite3.dylib 不是必需的架构?
我正在编写一个似乎在模拟器上运行良好的 iPhone 应用程序,但是当我尝试在设备上运行它时,我得到一个 libsqlite3.dylib,文件不是所需的架构错误。我在 3GS 上使用 os 3.0。关于可能导致这种情况的任何想法?
谢谢!
macos - 在 Mac 上创建 .dll:.dylib 还是框架?
我需要为我们的一位客户创建一个 Mac 版本的库。我对 Mac 上的动态库不太熟悉,但据我了解,我有 2 个选项:.dylib 或框架。什么是最好的选择?为什么?
几个相关的问题:
- 如果我理解正确,.dylib必须安装在标准 UNIX 目录之一中,例如 /usr/lib 等。因此使用 .dylib 应该会使我客户的安装程序更加复杂,因为他们可能需要请求权限在系统文件夹中写一些东西?
- 框架可以是私有的并嵌入到我客户的捆绑包中吗?所以没有其他人可以看到/使用它们?
任何建设性的批评/评论/想法都非常受欢迎。提前致谢。
亚历克斯
c++ - 将 C++ 库与 Objective-C 应用程序链接并使用
我正在编写一个图形应用程序,前端使用 Objective-C,图形处理和网络通信使用 C++。我在 Apple 的网站上四处阅读,寻找一种将.dylib或.so与其中的 C++ 代码链接到我的 Xcode 项目的方法,但似乎没有任何效果。我能够让项目引用它并链接它,但是当我试图从那个 .dylib 调用函数时,它说它不知道我在做什么。有谁知道这里发生了什么?
我知道 Objective-C 拥有我需要做图形和网络的所有库,但我只是想这样做。我有一段时间没有做太多 C++ 了,我想学习更多 Objective-C,那么有什么比一起使用它们更好的方法呢?
谢谢,罗比
iphone - 如何在 iPhone 项目中指定 dylib 的兼容版本?
我最近在我的 iPhone 项目中添加了一个静态库 (mobclix),它要求我将 Base SDK 设置为 3.0。该库声称与 2.2 兼容,到目前为止它看起来是真的。我将项目的部署目标设置为 2.2。那里没有问题。
现在,我也在同一个项目中使用 libxml2。显然,OS 3.0 中的 libxml2.2.dylib 比 OS 2.X(分别为版本 10 和 9)更新。但是,我使用 libxml2 的代码已经与 OS 2.X 中包含的 libxml2 版本兼容。由于我需要将 Base SDK 设置为 3.0,因此“兼容性版本”/最低版本要求/依赖项会自动设置为较新版本的 libxml2。当我尝试在 OS 2 中运行该应用程序时,我收到此运行时错误(显然):
是否可以在某处覆盖版本要求?或者解决这个问题的其他想法?
mysql - Removed MAMP from OS X, dyld still using MAMP libraries
When I try and use a populator or sphinx on a Ruby app I keep receiving dyld errors. I used to use MAMP on OS X Leopard but since I've upgraded to Snow Leopard and am now using standalone MySQL (10.5 64-bit).
Would return
Even though to remove MAMP I just deleted the /Applications/MAMP directory. But it still looks like dylib has references to it.
I've tried running:
and restarting but the problem still persists.
OS X 10.6.1, MySQL 5.0.85 (x86_64)
iphone - 使用 dylib 中的类别来扩展二进制文件的类
我有一个具有类 Foobar 的 objc 应用程序,我想制作一个 dylib,它将在启动时加载到该应用程序中,并使用一些方法扩展类 Foobar。
不幸的是,我无法构建库,出现以下链接器错误:
是否有一些链接器标志告诉 ld 忽略那个丢失的符号?
非常感谢!