xcode - 在 Xcode 中使用库时出现问题

标签 xcode cocoa linked-list

我实际上正在为 iPhone 开发一个应用程序,我需要使用一个库,最初专用于 Linux 环境。由于我使用的是 Mac(配备 Snow Leopard 和 Intel Core Duo),我想可以在我的应用程序中使用这个库。

我的库有3个文件:.h文件、.a文件和.so文件(.a和.so都在/Developer/usr/lib中)。此外,我已经包含了 .h in my 代码,并且我在 XCode 中添加了 .a 有一个框架(它可以工作,因为 XCode 找到了 .so 编译)。

供您引用,当我对文件 .so 使用命令“file”时,我有: ELF 32 位 LSB 共享对象,Intel 80386,版本 1 (SYSV),动态链接,未剥离

当我编译 Xcode 模拟器时,出现警告和错误。
警告是:

In /Developer/usr/lib/mylib.so, file was built for unsupported file format which is not the architecture being linked (i386)

错误是: “_mylib_fct”,引用自:


-[MyAppAppDelegate applicationDidBecomeActive:] in MyAppAppDelegate.o
Symbol(s) not found
Collect2: ld returned 1 exit status

当我为具有arm6架构的Device 3.0进行编译时,我也有同样的错误,但警告完全不同:
ln/Users/Pablo/MyApp/mylib.a 文件不符合所需架构

我几天来一直在尝试解决这个问题并使应用程序能够使用这个库,但我不明白为什么编译器会提示......这是一个 32/64 位问题吗?我该如何处理?

最佳答案

Mac OS X 与 Linux 二进制兼容。它无法加载 ELF 图像,也不共享相同的 ABI。 它只能加载MACH图像,例如:

file /usr/lib/libcrypto.dylib 
[..]
/usr/lib/libcrypto.dylib (for architecture i386):   Mach-O dynamically linked shared library i386

阅读dlopen手册页了解详细信息。

关于xcode - 在 Xcode 中使用库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2955511/

相关文章:

cocoa - 如何创建带有圆角的 NSImageView?

c - 从文件中读取数据并将其写入链表

iphone - 显示仅包含以 'A' 开头的名称的地址簿 View ?

ios - 具有双值的 TableView 单元格

ios - NSMutable 数组不会分配,仍然为零

xcode - "Profile"是一个有效的身份。但是,您没有关联的包标识。可以导入来自不同 Mac 的开发人员配置文件

objective-c - 在 objective-c 中声明属性和 @property 之间的区别

swift - 如何更改NSTextField的高度?

c++ - 在 C++ 中遍历非 STL 链表,可能吗?

c - 将单词保存到 C 中的链表的问题