Swift:尝试在我的 swift 应用程序中运行 c 函数给我链接器错误

Swift: Trying to run c function in my swift application gives me linker error

提问人:Dhanush 提问时间:11/13/2020 更新时间:11/13/2020 访问量:125

问:

我知道 c 可以在 swift 应用程序中运行,我以前也做过,但出于某种原因,当我现在尝试运行它时,它给了我一个链接器错误

未定义的架构符号 x86_64: “_add”,引用自: ViewController.o 中的 Cprogramretest.ViewController.viewDidLoad() -> () ld:找不到用于体系结构x86_64的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

这就是我得到的错误。c 代码只需将 2 个数字相加并返回总和。我不记得我上次是怎么解决这个问题的,但我确实记得我能够在我的应用程序中运行代码。如果有人能帮上忙,我将不胜感激。

c Swift Xcode 链接器错误

评论

0赞 gnasher729 11/13/2020
C 代码是否与您的应用相关联?项目中的源文件,并在目标中选择?查看链接器语句。
0赞 Dhanush 11/13/2020
是的。我能够找到解决方案。桥接标头出错。

答:

0赞 Dhanush 11/13/2020 #1

我参考了这个网站关于如何添加 C 代码 https://theswiftdev.com/how-to-call-c-code-from-swift/

但似乎他们在桥接头部分犯了一个错误 在本教程中,它提到 C/C++ 标头需要包含在桥接标头中,如下所示

#include“header.h/hpp”

这不起作用并给了我错误,但是在更改包含包含源而不是标头后,它的工作方式是这样的

#include“source.c/cpp”