gpt4 book ai didi

clang - 静态库链接错误。体系结构 armv7s 的 undefined symbol

转载 作者:行者123 更新时间:2023-12-02 22:08:57 27 4
gpt4 key购买 nike

错误是..

Undefined symbols for architecture armv7s:
"ABCD_Initialize(ABCD_data_type*)", referenced from:
-[MyViewController doSomething] in MyViewController.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我想列出我所做的一切

ABCD_Initialize 是我添加的静态库头文件中的一个函数。

  1. 几乎检查了所有相关问题。
  2. 添加了所有文件以正确定位。
  3. 在构建阶段链接 FAT 文件(.a 文件)
  4. FAT 文件上的 lipo 表示它对 armv6 armv7 和 armv7s 有效
  5. 将“仅构建事件架构”设置为"is"。
  6. 添加了与FAT文件相关的.h文件
  7. 重新启动 Xcode、Mac 等 :)

关于我的应用的一些事情

  1. 创建了一个工作区
  2. 向工作区添加了一些其他相关的 .xcodeproj 文件。
  3. 添加(C++ 的)FAT 文件并在构建阶段链接
  4. 在其他链接器标志中设置 -Objcflags(以加载静态存档库的所有成员)

环境规范

山狮 + Xcode 4.6 + iOS SDK 6.1

如果您需要更多信息,请告诉我。任何帮助表示赞赏。

谢谢

J0k3r

最佳答案

我的初步回答:

我会说第 5 步不正确。

如果您正在构建一个库,您希望为所有架构构建,而不仅仅是“事件架构”。

将其设置为“NO”,看看效果如何。

我的第二个答案:

此外,确保您在库函数声明中添加了“extern "C":

#ifdef __cplusplus
extern "C" {
#endif

ABCD_Initialize(ABCD_data_type*);

#ifdef __cplusplus
}
#endif

这有助于在链接到您的应用程序时对符号进行分解。 Here's a related question with a decent explanation of what's going on .

关于clang - 静态库链接错误。体系结构 armv7s 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687698/

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