error机器信息: macOS 10.13.5 Xcode 9.4 Swift 4.1默认c++编译器
我已经创建了简单的swift项目,只是添加了c++文件和头文件,Xcode为我创建了桥头文件。我已经在.cpp文件中初始化了基本函数,将原型写成了.hpp文件,并在桥接头中包含了.hpp文件。当我开始输入cpp文件时,一切似乎都正常了:我的cpp函数名在.swift文件中的适当位置得到了建议,没有出现任何警告或错误。但是,当我尝试构建这个项目时,得到了以下结果:未定义的体系结构符号x86_64:"_get",引用自:_main in main.o
以下是源代码:
// main.swift
import Foundation
print("Hello, World!")
var number = get();
// cppBackend.cpp
int get()
{
return 1;
}
// cppBackend.hpp
int get();
// test-Bridging-Header.h
#include "cppBackend.hpp"
//cppBackend.hpp second version
#ifdef _cplusplus
extern "C"
{
#endif
#include <stdio.h>
int get();
#ifdef _cplusplu
}
#endif
发布于 2018-06-08 03:58:00
目前Swift和C++之间没有互操作。您可以轻松地使用ObjC和C,但是对于C++,您需要将C++代码包装在ObjC中。
https://stackoverflow.com/questions/50748934
复制相似问题