1. 程式人生 > >OC 與 C++ 混編導致的問題

OC 與 C++ 混編導致的問題

object c cos alt idt tails blog fun 所有 src

最近項目中用到 std::function. 在導入頭文件的時候,發現問題總是報頭文件無法找到。但是我通過xcode 跳轉都能夠跳轉到對應的文件了

#include <string.h>
#include <functional>

技術分享圖片

技術分享圖片

技術分享圖片

1、一開始以為是 鏈接庫的問題 於是添加 libstdc++.tbd 發現沒用。

2、考慮到是否是 文件搜索路徑的問題, 經過與 cocos 工程進行對比發現不是這個問題。

3、考慮是否是 編譯設置的問題

技術分享圖片build setting 裏面設置支持 C++11 也沒用

4、後面考慮到是否是混編的問題

必須將引用到 c++混編的 .h 的所有文件後綴都改為 .mm。

.m 是 objective c 語言文件,僅支持 object c 和 c 語言混編。

.mm 是 objective c++ 語言文件, 支持的是 objective c語言和 c++ 語言混編。

解決方案來自: https://blog.csdn.net/tangaowen/article/details/8648990

但是這時候又遇到

技術分享圖片

這個問題,需要將所有引用的

#include "MyWebView.h"
改成
#import "MyWebView.h"

#import 和 #include 的區別 留待後面再寫, 這裏主要是記錄遇到的這幾個問題

OC 與 C++ 混編導致的問題