據說,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支援,與作業系統沒太大的關系。
如果大家想與我一起學習新的技術,不防關注我。