gpt4 book ai didi

c - 如何在 macOS 上将 dylib 静态链接到我的程序?

转载 作者:太空宇宙 更新时间:2023-11-04 04:11:39 25 4
gpt4 key购买 nike

我的 C 程序调用:

hLibrary = dlopen("libPCBUSB.dylib", RTLD_LAZY);

在调用 gcc main.c 后运行可执行文件时,我似乎需要目录中的这个文件。

即我运行 ./a.out,只要 dylib 在该目录中,它就可以正常工作。

为了使用静态内置的 dylib 生成可执行文件,我一直在尝试各种链接选项,但都失败了。

编译我的 c 程序(在 macOS Darwin 而不是 linux 中)以包含此库以便最终用户在他们的 Mac 上不需要它的正确方法是什么?

最佳答案

动态库 (.dylib) 不能静态链接。如果您有权访问用于构建库的源代码,则可以将其转换为静态库并在您的应用程序中静态链接到它。如果这是第 3 方二进制库,您将需要向供应商索取该库的静态版本,如果该版本不可用,您将需要坚持动态链接它。

请注意,dlopen() 并不是链接dylib 的唯一方法,您还可以使用-l,那么您不需要不需要乱用 dlsym() 等来到达入口点。当然,无论哪种方式都需要将库与您的应用程序一起运送。

关于c - 如何在 macOS 上将 dylib 静态链接到我的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56607771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com