问题标签 [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.

0 投票
4 回答
60860 浏览

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 是必需的。

0 投票
2 回答
5757 浏览

macos - 如何将 LC_LOAD_DYLIB 命令插入 Mach-O 二进制文件 (OSX)

我正在寻找用一些代码修补一块废弃软件。

该软件是基于碳的,所以我不能使用 InputManager(至少,我认为我不能)。我的想法是添加对 mach-o 标头的 dylib 引用,并在调用初始化例程时启动一个新线程。

我已经使用 hexeditor 添加适当的加载命令 (LC_LOAD_DYLIB) 来处理 mach-o 标头。

otool 报告了我希望看到的内容,因此我相当有信心该文件的格式正确。

但是,启动二进制文件会给我以下错误

我能猜到这意味着我需要修改 LC_ SYMTAB 或 LC_ DYNSYMTAB 部分......

有人有想法么?

0 投票
3 回答
6426 浏览

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 中最好的/最优雅的/最容易做到的吗?

0 投票
1 回答
530 浏览

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?有人有好主意吗?

0 投票
3 回答
1685 浏览

iphone - iphone 警告 libsqlite3.dylib 不是必需的架构?

我正在编写一个似乎在模拟器上运行良好的 iPhone 应用程序,但是当我尝试在设备上运行它时,我得到一个 libsqlite3.dylib,文件不是所需的架构错误。我在 3GS 上使用 os 3.0。关于可能导致这种情况的任何想法?

谢谢!

0 投票
1 回答
10560 浏览

macos - 在 Mac 上创建 .dll:.dylib 还是框架?

我需要为我们的一位客户创建一个 Mac 版本的库。我对 Mac 上的动态库不太熟悉,但据我了解,我有 2 个选项:.dylib 或框架。什么是最好的选择?为什么?

几个相关的问题:

  • 如果我理解正确,.dylib必须安装在标准 UNIX 目录之一中,例如 /usr/lib 等。因此使用 .dylib 应该会使我客户的安装程序更加复杂,因为他们可能需要请求权限在系统文件夹中写一些东西?
  • 框架可以是私有的并嵌入到我客户的捆绑包中吗?所以没有其他人可以看到/使用它们?

任何建设性的批评/评论/想法都非常受欢迎。提前致谢。

亚历克斯

0 投票
2 回答
13959 浏览

c++ - 将 C++ 库与 Objective-C 应用程序链接并使用

我正在编写一个图形应用程序,前端使用 Objective-C,图形处理和网络通信使用 C++。我在 Apple 的网站上四处阅读,寻找一种将.dylib.so与其中的 C++ 代码链接到我的 Xcode 项目的方法,但似乎没有任何效果。我能够让项目引用它并链接它,但是当我试图从那个 .dylib 调用函数时,它说它不知道我在做什么。有谁知道这里发生了什么?

我知道 Objective-C 拥有我需要做图形和网络的所有库,但我只是想这样做。我有一段时间没有做太多 C++ 了,我想学习更多 Objective-C,那么有什么比一起使用它们更好的方法呢?

谢谢,罗比

0 投票
2 回答
2342 浏览

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 中运行该应用程序时,我收到此运行时错误(显然):

是否可以在某处覆盖版本要求?或者解决这个问题的其他想法?

0 投票
1 回答
290 浏览

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)

0 投票
1 回答
214 浏览

iphone - 使用 dylib 中的类别来扩展二进制文件的类

我有一个具有类 Foobar 的 objc 应用程序,我想制作一个 dylib,它将在启动时加载到该应用程序中,并使用一些方法扩展类 Foobar。

不幸的是,我无法构建库,出现以下链接器错误:

是否有一些链接器标志告诉 ld 忽略那个丢失的符号?

非常感谢!