Linux上的Swift Objective-C互操作性错误:找不到'Foundation/Foundation.h'文件
我想编译一个swift程序,它使用在运行Linux(Ubuntu 16.0.4)的虚拟机上用Objective-C编写的代码,Swift 4.0.3)。Linux上的Swift Objective-C互操作性错误:找不到'Foundation/Foundation.h'文件
我编译时出现此错误:
fatal error: 'Foundation/Foundation.h' file not found #import <Foundation/Foundation.h>
^
1 error generated.
在Mac OS
相同的程序完美的作品在Mac OS。
我试过了什么?
我试过恢复到迅速3.1.1(我记得这个工作在快速3前一阵子)。
我已经广泛地搜索了这个问题,但没有成功。
我已经按照有关如何安装Linux上的Objective-C运行指令和安装GNUstep的(见http://www.techotopia.com/index.php/Installing_and_Using_GNUstep_and_Objective-C_on_Linux)
所有没有成功。
为什么我使用objective-C?
(预测此问题)。
我需要从程序中调用python脚本。 Python有一个C库,我只能用C或Objective-C。
事实上,注释掉行#import <Foundation/Foundation.h>
导入Python库时发出编译失败:在Linux上
fatal error: 'Python/Python.h' file not found #include <Python/Python.h>
^
1 error generated.
回答:
斯威夫特是Objective-C的不能互操作,它与C.
据互操作到 https://github.com/apple/swift-package-manager/blob/master/Documentation/Usage.md#c-language-targets,您可以将纯C代码作为您的软件包的一部分,放在单独的目标中。
您还可以将您的软件包与C库链接,请参阅https://github.com/apple/swift-package-manager/blob/master/Documentation/Usage.md#c-language-targets。
在你的情况下,我会使用后面的方法,并将您的代码与Python C库链接。
以上是 Linux上的Swift Objective-C互操作性错误:找不到'Foundation/Foundation.h'文件 的全部内容, 来源链接: utcz.com/qa/267039.html