gpt4 book ai didi

c++ - 在 XCode 中桥接 C++ 和 Swift,正确的build设置是什么?

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

当我尝试调用我的 C++ 实现文件中的函数时(在 header 中使用 #ifdef __cplusplus extern "C"{} 技巧标记为 C 兼容),我收到错误:

“使用未解析的标识符,'helloWorld()'”

我只是通过将 cpp 和头文件添加到我的项目并在询问我是否要创建桥接 header 时单击“确定”来创建桥接 header 。我在桥接 header 中#including“test.h”,里面有函数声明,但出于某种原因,Swift 就是看不到这个函数。

最奇怪的是,我创建了一个新项目并执行了完全相同的过程,并且调用 helloWorld() 工作正常,所以这是关于现有项目的一些事情,我试图将 cpp 文件添加到它不起作用.

然后我假设这是一个build设置问题,并且我一定是在某些地方弄乱了它们,可能是在我尝试导入静态 C/CPP 库时(我已经删除了,但我为它更改的一些build设置可能会保留)。

那么,是否有任何我应该知道的build设置可以解决这个问题?或者有没有办法将我的build设置完全重置为默认值(即使这意味着我必须重新创建桥接 header 以使桥接 header build设置恢复原位)?

感谢您的所有帮助!

詹姆斯

---编辑---

这是我的 cpp header :

Test.h

这是我的cpp实现文件:

Test.cpp

这是我的桥接头:

HawkEye-Bridging-Header.h

这里是 Swift 项目的相关部分:

viewDidLoad in viewController.swift

这里是设置桥接头的build设置:

Relevant build setting

最佳答案

好的 - 这已经解决了。问题是桥接头需要从常规目标和测试目标中实现,这是在我现有的项目中,因为我正在进行单元测试。

我只是进入了测试目标的build设置并添加了适当的 Objective-C Bridging Header,然后一切正常。

希望对大家有帮助!

关于c++ - 在 XCode 中桥接 C++ 和 Swift,正确的build设置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29377075/

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