error 机器信息: macOS 10.13.5 Xcode 9.4 Swift 4.1 默认的c ++编译器
我创建了简单的swift项目,只是添加了带有标题的c ++文件,Xcode为我创建了桥接标题。我在.cpp文件中初始化了基本函数,将原型编写为.hpp文件,并在桥接头中包含.hpp文件。当我开始输入.swift文件时,一切似乎都有效:我的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
答案 0 :(得分:0)
目前Swift和C ++之间没有互操作。你可以很容易地做ObjC和C,但是对于C ++,你将把你的C ++代码包装在ObjC中。