天天看點

OpenWRT開發之——對C++11的支援總結

據說,gcc在4.8版本之後就支援c++11了。我們先檢查一下交叉編譯器的版本。

看來是可以支援的,不過我們還是要試了才知道。

在 sdk/package/ 下建立 cpp11-demo 目錄,并建立以下檔案結構:

在main.cpp裡面,我用到了c++11裡的新特性:auto, for, lambda。

第2行的 objects 為推算出的 main.o 檔案。

其中,cxxflags 指定了 -std=gun++11 或 -std=c++11,表示在編譯過程中開啟c++11的特性。

打包相關的makefile不需要做特殊修改。

與其它沒有什麼特殊之處,都是 make v=s,正常通過。

将生成的ipk檔案用scp傳送到 openwrt目标機上。

并在目标機上有opkg指令安裝

由于是c++程式,依賴libstdcpp,我們需要前提安裝libstdcpp的安裝包。

libstdcpp安裝包是在我們編譯openwrt的trunk路徑下。如果我們曾經編譯成功了openwrt,那麼應該會有libstdcpp的安裝包。如果不好找,可以用指令搜一下:

把它安裝到openwrt目錄機上。

安裝了libstdcpp之後,再安裝cpp11-demo就成功了。

說明程式正常運作!

能在openwrt上用c++11進行開發是一件非常令人興奮的事!它果然可以。

不過這不算是openwrt支援c++11吧,應該說是gcc支援,與作業系統沒太大的關系。

如果大家想與我一起學習新的技術,不防關注我。

繼續閱讀