为什么 Xcode 给出错误“string”文件未找到?

问题描述 投票:0回答:1

我正在尝试与 Swift 中的基本 C++ 方法进行互操作。但是当我构建项目时 Xcode 给我一个错误;

'string' file not found

我在 StackOverflow 上研究过这个问题,但每个解决方案和答案都没有解决我的问题。我开始思考如果我使用 libstdc++ 而不是 libc++ 会怎样。然后我发现libstdc++被Xcode 10删除了。我在Github上找到了这些文件并将其应用到适当的文件目录中。但这也没有多大作用。你们以前遇到过这样的问题吗?

这是我的头文件。

#ifndef CPPTest_hpp
#define CPPTest_hpp

#include <string>

std::string saySomething();

#ifdef __cplusplus
extern "C" {
#endif
    int returnNumber();

#ifdef __cplusplus
}
#endif


#endif CPPTest_hpp

这是cpp文件。

#include "CPPTest.hpp"

std::string saySomething()
{
    return "Welcome to C++";
}

int returnNumber()
{
    return 10;
}

这是我向 Swift 公开标头的地方

#include "CPPTest.hpp"

毕竟,当我构建项目时。它给了我一个类似的错误;

找不到“字符串”文件

为什么会出现这个错误?

顺便说一下,当我使用整数作为返回类型及其在 cpp 文件中的适当实现时,它就可以工作。

c++ swift interop wrapper
1个回答
0
投票

如果你偶然发现这个问题,我的问题是

MODULE_VERIFIER_SUPPORTED_LANGUAGES

构建设置包括objective-c和objective-c++。显然,在 Objective-C 中,没有来自 C++ 的

<string>
标头。

使用

#ifdef __cplusplus
宏或更改以上 Xcode 构建设置以仅包含 c++ 和/或 Objective-c++。

© www.soinside.com 2019 - 2024. All rights reserved.