问题标签 [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 回答
1456 浏览

java - JNI System.LoadLibrary 在 Cocoa dylib 上失败

遵循 JNI 指南,我使用 Xcode 创建了一个 dylib(在 Objective-C 中),并希望将其加载到我的 Java 项目中,如下所示,

我收到以下运行时错误 -

我怎么能解决这个问题?

0 投票
1 回答
2288 浏览

c++ - 在动态 qt 库中导出符号

我正在尝试在 OS X 10.6.7 和 Qt 4.7.3 上使用 Qt 创建一个动态库。我已经创建了我能想到的最基本的测试(见下文或https://gist.github.com/1016045)但是

仍然报告

我假设我应该在该列表中看到与阶乘相关的其他内容。

测试用例(也在:https ://gist.github.com/1016045 ):

构建:

我读了:

如果适用,请推荐其他资源!

编辑:

我相信符号可能被正确导出,尽管它们的名称被损坏(或至少看起来是),我认为使用 Q_DECL_EXPORT 宏应该避免这种情况。例如,这里是运行 nm -g build/libstackoverflow.dylib 的结果:

这是我应该期待的吗?

0 投票
1 回答
7307 浏览

macos - Mac OS X libcurl dylib 兼容版本

我的应用程序在 10.6 上构建并运行良好。我将 Base SDK 设置为 10.6,Mac OS X 部署目标设置为 10.5。

我的应用程序使用系统 libcurl.dylib — 我没有将 dylib 添加到项目中,而是添加-lcurl到构建设置中的链接器标志。(虽然我已经尝试过两种方式。)

当我在 10.5.8 上启动应用程序时,出现以下错误

Dyld 错误消息:未加载库:/usr/lib/libcurl.4.dylib

引用自:/Applications/My Application.app/Contents/MacOS/MyApplication

原因:库版本不兼容:

MyApplication 需要 6.0.0 或更高版本,但 libcurl.4.dylib 提供 5.0.0 版本

果然,如果我otool -L是应用程序的二进制文件,我会得到 libcurl 的以下内容:

/usr/lib/libcurl.4.dylib(兼容版本 6.0.0,当前版本 6.1.0)

有什么办法可以解决这个问题,还是我应该静态链接我自己的 libcurl 构建?

0 投票
1 回答
644 浏览

objective-c - Mac创建简单的dylib?

我需要为我的客户使用 XCode 创建一个 dylib。dylib 将只有两个函数 start 和 stop。人们正在制作这个用于单声道,他们将称之为 dylib。我怎样才能创建这个?谢谢。

0 投票
3 回答
2009 浏览

macos - Mono DLL 打开适当的 Windows/Mac DLL/DyLib

我正在使用 Mono 为一组本机公开的命令编写一个包装器。

该集合是相同的(命令和签名),但是它通过 Windows 中的 DLL 和 Mac 中的 DyLib 公开。

我想知道是否有一种方法可以让我只创建一个包装器 .NET/Mono DLL,同时让它仍然找到可以自行导入的正确库。

如果是这样,语法是什么?如果不是,那么将 DllImport 与我要编译的 2 个不同操作系统分开的编译器定义是什么?

编辑:Mac 部分的静态库(.a)而不是动态库(.dylib)的加分点,如果 Mono 甚至可以的话。

0 投票
3 回答
12713 浏览

dylib - dlopen() 找不到错误图像

我有首先加载 .dylib 的软件,让我们使用以下命令调用 libFirst.dylib:

稍后在加载的 libFirst.dylib 的函数内部,我尝试使用相同的命令加载另一个 .dylib,但对于 libSecond.dylib,此共享库的加载在我的 Xcode 控制台中给了我以下警告:

我没有得到的是它说 libFirst.dylib 没有加载,但我目前在 libFirst.dylib 的一个函数中,那么这怎么可能呢?

我在 DYLD_LIBRARY_PATH 中的所有路径也似乎正确。

在此先感谢,我已经坚持了好几天了。

0 投票
1 回答
8359 浏览

macos - 在 MAC OS X 的动态库中隐藏静态库的符号?

我正在使用静态库(例如:boost.a)和一些 *.o 文件在 MAC OS X 中创建动态库(例如:libdynamic.dylib)。

我可以隐藏 *.o 文件中的符号,因为我是通过 -fvisibility=hidden 标志创建的。但是,我无法隐藏 boost.a 库中的符号,因为它们已经编译过了。

有没有办法在动态库中隐藏静态库的符号(函数)?
即,如果我在 myfuncs.o 文件中有一个函数(隐藏)调用 boost.a 文件中的函数(可见),那么当我使用“nm 工具”时 boost.a 函数是可见的。

请给我一个解决方案。

0 投票
2 回答
19268 浏览

objective-c - Xcode 4 添加 dylib

我正在尝试创建 dylib,然后将其添加到项目中。我通过使用“Cocoa-Library”模板并将类型设置为“Dynamic”来创建它(不确定它应该是动态的还是静态的......)。然后我创建了一个名为 Test 的简单 obj-c 类,并在其中编写了一个方法,可以打印出一些东西来控制台。

我编译并使用了生成的 .dylib 文件并将其放在另一个项目中。现在每当我尝试使用它时,我都会在运行时收到此消息“

我还创建了一个复制文件阶段并将目标设置为“框架”。我仍然得到同样的错误。我究竟做错了什么?

0 投票
2 回答
1769 浏览

iphone - 如何解决“找不到符号 dyld_stub_binder”错误

在错误消息告诉我缺少某些插件后,我在构建和运行我的应用程序时遇到问题。我搜索了该消息并尝试将一些文件添加到我的项目中(不再确定我做了什么,只是按照说明进行操作)。然后我收到了 15 个警告,所以我取消了它,但应用程序仍然没有运行。第一个警告说:

ld:警告:找不到符号 dyld_stub_binder,通常在 libSystem.dylib 架构 armv7 的未定义符号:

我试图找到一个解决方案,并且我已经看到了几个与这个主题相近的主题,但并不相同。我重新安装了 Xcode,但仍然没有运气。我尝试了其他一些项目,他们正在工作,所以我的项目发生了一些事情。

我还会收到各种错误消息,例如:

"__objc_empty_vtable", referenced from:
_OBJC_METACLASS_$_BokbynAppDelegate in BokbynAppDelegate.o _OBJC_CLASS_$_BokbynAppDelegate in BokbynAppDelegate.o _OBJC_METACLASS_$_FirstViewController in FirstViewController.o _OBJC_CLASS_$_FirstViewController in FirstViewController.o _OBJC_METACLASS_$_AddresAnnotation in FirstViewController.o _OBJC_CLASS_$_AddresAnnotation in FirstViewController.o _OBJC_METACLASS_ SecondViewController.o 中的 $_SecondViewController"

0 投票
1 回答
3074 浏览

c# - 如何将框架 libz.dylib 和 libxml2.dylib 添加到 MonoTouch 中的 gcc_flags 参数中?

我有一个 Objective C 静态库,我正在尝试使用 btouch 将其导入 MonoTouch。但是,我遇到的问题是该库依赖于 libz.dylib 和 libxml2.dylib,我不知道如何将这些框架包含在我的 MonoTouch 应用程序中。

我已经在 XCode 项目中测试了静态库,并且该测试应用程序可以正确编译和运行。我现在正在尝试在 MonoTouch 中构建完全相同的示例应用程序,并且在正确获取 gcc_flags 参数以便包含所有依赖项时遇到问题。

在 XCode 应用程序中,需要包含以下框架:

此外,在 XCode 中,我必须包含以下搜索路径才能找到所有必需的头文件:“$(SDK_DIR)”/usr/include/libxml2

现在,在 MonoTouch 中,我在构建选项下的 gcc_flags 中有以下设置:

当我尝试编译时,我得到一长串链接错误,据我所知,这是由链接期间未包含 libz.dylib 和 libxml2.dylib 引起的。有谁知道我如何确保这些被包含在 MonoTouch 中?