问题标签 [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 投票
1 回答
881 浏览

java - 在 Mac OS X 10.6 上从 x86_64 .a 文件创建 jnilib

我想从 Java 应用程序中使用一堆非通用(瘦?)、x86_64、C 库。问题是我只有它们的静态版本(.a 文件),jvm 需要它们是动态的。

我尝试使用 libtool 将文件组合到一个动态库中,但我只是收到错误消息,说 x86_64 缺少许多符号(可能是全部,有很多),这很奇怪,因为我在制作小 C 时没有问题使用 -arch x86_64 的应用程序使用一些库并使其链接并正确运行。

这应该是一个简单的命令行事情吧?我想要的最后一件事是为已经存在的函数编写自己的包装函数,这样我就可以将它们放入动态库中。

0 投票
1 回答
3006 浏览

objective-c - 将动态库 (.dylib) 复制到框架 (.framework) 中

我有两个 XCode 项目:一个框架和一个客户端应用程序。我的应用程序依赖于我的框架,一切正常 - 每次应用程序都重新编译框架,项目构建路径设置正确,完全没问题。

现在框架开始使用第 3 方 dylib 文件,并且它与 dylib 链接。我什至添加了一个构建阶段来将该库复制到框架的资源目录中。

当我尝试运行应用程序时,一切都正确编译,然后我得到这个:

dyld:库未加载:/usr/local/lib/libplplot.9.dylib 引用自:/Users/railsmaniac/Projects/Study/Calculus of >approximations/Builds/Debug/XNMaths.framework/Versions/A/XNMaths 原因:找不到图片

我该如何解决?将库添加到客户端应用程序的资源中并不能解决问题。我可以将库放置到所需的位置,但我更喜欢将其保留在框架中。是否可以?

0 投票
3 回答
10236 浏览

cocoa - XCode 中的动态库

我正在尝试在 XCode 中创建一个 mac 应用程序,它的一些实现在动态库中。

我在我的 XCode cocoa 项目中添加了一个新目标(动态库),在与框架和预编译头文件进行了一番斗争之后,让 dynlib 编译 - 并从调试器成功运行。

但是,当独立运行时,很明显 dynlib 位于错误的位置。“未加载库:/usr/local/lib/testlib.dynlib”。在 Windows(我更常用的平台)上,Dll 可以放在与 exe 相同的文件夹中,也可以放在系统路径上的任何位置。

我希望我的应用程序在其应用程序包中的某处寻找它的 dynlib(并且某些文档似乎证实这是正确的方法),但我不知道如何。

是否可以在 XCode 中配置项目,以便将 dylib 实际上复制到应用程序包中,在应用程序查找它的地方?


看来我不需要使用 otool 来重置搜索路径。如果我编辑目标信息 -> 构建 -> 部署 -> 安装目录,我可以从 XCode 内部更改 dyld 将为 dylib 查找的路径。默认情况下,对于新的动态库项目,路径设置为/usr/local/lib. 我已更改为./- otool 确认 ./ 现在是 dyld 正在寻找这个特定动态模块的地方。不幸的是 ./ 似乎并没有真正引用我的应用程序包中的任何目录:(

所以,我的问题(在另一个线程中没有回答)现在是:1.如何在 Target Info -> ... -> Installation Directory 设置中输入有意义的相对路径,以及 2.如何让 XCode 自动将dylib“目标”复制到应用程序捆绑目标的捆绑文件夹中的相对位置?

0 投票
4 回答
33460 浏览

macos - 使用完整路径链接到 Mac 上的动态库

我正在使用以下命令(使用 cmake 生成)链接嵌入 Matlab 引擎的(Python 扩展)库

导致

但是,当我尝试使用该库时,我收到一条错误消息:

我相信问题源于链接器在表单中包含 matlab dylib 文件@loader_path/libeng.dylib而不是使用完整路径,即使我给出了g++. 如何强制链接器使用完整路径?

我知道一种解决方案是使用

这是那些库文件所在的位置,但我想避免这种情况,因为它会导致一些其他问题。

0 投票
1 回答
643 浏览

macos - Mac OSX 中的网络数据包检查器

我正在尝试创建一个网络数据包检查器。

我知道你可以用 libpcap 做到这一点,但它不是嗅探器,我需要伪造网络数据包,然后才能将其发送到网络上。(通过 socks 服务器发送)

我找到了两种方法来做到这一点:

  • 使用 NKE。(网络内核扩展)
  • 使用 DYLD_INSERT_LIBRARIES 插入库以挂钩网络功能。

你认为哪种方法最好?

0 投票
1 回答
11805 浏览

xcode - 插件包中的 dylib @executable_path 路径问题

我正在开发一个插件包,比如说MyPlugIn.bundle 一个应用程序,比如说BigApp.app这个包需要一个 dylib,比如说MyPlugIn.bundle/Contents/Resources/library.dylib。我已经重新定位了 library.dylib 的路径,就像我对一个简单的应用程序包所做的那样:

但 BigApp.app 无法加载此捆绑包,Mac OS X 的 Console.app 记录以下内容:

似乎 @executable_path没有被 MyPlugIn.bundle 可执行路径替换,而是被BigApp.app 可执行路径替换。

任何解决方法,没有绝对路径,以便它可以在Mac OS X 10.4 (Tiger)上运行?谢谢。

0 投票
2 回答
8880 浏览

dylib - 使用 dlopen 查找 dylib 版本

有没有办法使用它的路径找到 dylib 的版本?我正在寻找可以接受与 dlopen 相同参数的东西。我查看了 NSVersionOfRunTimeLibrary,但从我阅读文档看来,它获取的是当前 dylib 的版本,而不是路径中指定的版本。

谢谢

0 投票
1 回答
432 浏览

iphone - iPhone 3.1.2 的 dylib 太短,错误的 cputype/cpusubtype

我一直在尝试编译一个 dylib 以在一个小原型实验中使用,但是 dlopen() 说我的 dylib 是 Mach-O 但文件太短了。是不是应该加点东西?

我有最新的一切,所以这不应该是一个问题。

当我尝试将 i386 和 armv6 拱门合并在一起时,lipo 会吐出这个:

lipo:文件(libTest.A.armv6.dylib)的指定架构类型(armv6)与它的cputype(7)和cpusubtype(3)不匹配(应该是cputype(12)和cpusubtype(6))

Any thoughts?

0 投票
4 回答
14069 浏览

macos - dyld:在终端中运行命令时库未加载错误

在终端中运行某些命令时,我收到以下错误消息

我的 xcode 是最新的。

0 投票
1 回答
1281 浏览

cocoa - 在 Cocoa 应用程序中设置 .dylib 路径的路径

我正在开发一个 Mac OS X Cocoa 应用程序并想使用几个 .dylib 库。如何设置位于我的应用程序文件夹中某处的 .dylib 的路径?如果路径位于不同计算机上的不同目录中或根本不存在怎么办?