我想在Swift下做一個C++庫工作。我在兩個人都是小菜鳥,所以我可以做一些完全愚蠢的事情,但是很欣賞所有的反饋。我有以下設置:Swift:從Swift結果使用C++庫到聯接錯誤,但爲什麼?
AnswerToEverything.cpp:
#include "AnswerToEverything.h"
#include <iostream>
class Everything{
int answerToEverything()
{
return 42;
}
};
AnswerToEverything.h:
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
int answerToEverything();
#ifdef __cplusplus
}
#endif
回答橋接-Header.h:
#include "AnswerToEverything.h"
GameScene.swift :
...
override func didMoveToView(view: SKView) {
/* Setup your scene here */
println("C++ call: \(answerToEverything())")
}
...
結果是:
所以我錯過了什麼?所有幫助讚賞!
在標題聲明一個全局「的extern C」功能answerToEverything,在源必須定義與一個成員函數answerToEverything的類。這是兩個不同的,完全不相關的功能。你真的需要/想要哪一個? – stijn 2014-12-27 13:31:50