gpt4 book ai didi

java - 使用 Java 加载通用二进制文件

转载 作者:行者123 更新时间:2023-12-01 05:59:20 26 4
gpt4 key购买 nike

我有一个通过 JNI 加载 native 代码的 Java 小程序。一切都工作得很好,直到我升级到 Snow Leopard,然后 Safari 决定保持沉默。事实证明,Safari 在 64 位模式下只会加载 64 位二进制文​​件。 (您可以将其置于 32 位模式,但这不是一个选项。)我更改了构建系统 (g++) 以支持构建通用二进制文件而不是单个 32 位二进制文​​件。我已经成功创建了一个通用二进制文件,但是当我尝试将其加载到我的小程序中时,我收到一个不满意的链接异常,指出没有找到合适的图像,并且无法映射它。以前有人处理过这个问题吗?

欲了解更多信息...当我在终端中输入“file native.dylib”时,原始的 32 二进制文件显示为:
Mach-O动态链接共享库i386

当我对通用二进制文件执行相同操作时,结果为:
native.dylib:具有 2 种架构的 Mach-O 通用二进制文件
native.dylib(适用于 i386 架构):Mach-O 对象 i386
native.dylib(适用于架构x86_64):Mach-O 64位对象x86_64

最佳答案

我发现我所做的事情导致事情无法正常进行。在更改所有 Makefile(大约有 10 个)中的内容时,我没有正确创建 .a。我有一些奇怪的方法来单独构建源代码的每个拱形版本,然后将它们组合在一起。我现在意识到这对我来说很愚蠢,但你活到老,学到老……无论如何,我决定通过使用 libtool 而不是做所有的事情,这会很有帮助。我没有单独构建所有拱门,而是将多个拱门标志传递给 g++ 并将它们与 libtool 合并在一起。

关于java - 使用 Java 加载通用二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1588880/

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