我試圖將一個簡單的Swift應用程序(here)從使用Swift數據模型轉換爲C++模型。我發現了一篇關於用Obj-C++封裝C++代碼的文章(here),以便將C++模型暴露給Swift。來自橋接頭的C++頭問題Obj-C++
我已經完成了轉換,並沒有編譯器警告/錯誤,直到我將我的Obj-C++「包裝器」標題放入<xx>-Bridging-Header.h
。在橋接頭文件中,我有一個#include
到我的Obj-C++「包裝器」頭文件。 Obj-C++包裝類當然直接鏈接到我的C++類頭。試圖編譯時,我從Swift中得到一個錯誤,找不到<unordered_map>
。
這很有道理,因爲我不希望Swift知道關於C++或其任何頭文件的任何信息。我認爲橋接頭的意義在於Obj-C++編譯器能夠適當地啓動和編譯代碼。
在構建設置中,我確保在LLVM 6.0 C++編譯器設置下使用C++ 11編譯器標誌。但是,似乎並沒有使用除Swift之外的其他編譯器。而且,從C取出<unordered_map>
依賴++頭也再找不到<vector>
,所以我相信這無關與C++ 11
如果任何人都可以在正確的方向指向我在這裏將不勝感激!