gcc編譯器-出現-fpermissive的問題
https://blog.csdn.net/lst227405/article/details/25975661
2014年05月16日 14:32:21 應瀾lst 閱讀數 11406
在VS2010下編譯通過的程式,移植到ARM平台時
通過ARM-GCC交叉編譯時出現-fpermissive問題,問題描述是taking address of temporary [-fpermissive]
查了一些資料,可能是不同編譯器或者新舊編譯器對于c++标準的不同解釋的結果
在GCC下對于模闆繼承的規定與VS不同
有一個簡單粗暴的解決辦法,就是在交叉編譯指令裡面加入-fpermissive這一條指令,讓模闆代碼由出錯降為警告,進而編譯通過
例如剛開始時我的指令為
arm-xilinx-linux-gnueabi-g++ -I/home/zed/opencv/opencv-2.4.8/install/include/opencv -I/home/zed/opencv/opencv-2.4.8/install/include/opencv2 -I/home/zed/opencv/opencv-2.4.8/install/include -L/home/zed/opencv/opencv-2.4.8/install/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann -lopencv_gpu -lopencv_nonfree -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_videostab -lstdc++ -o xuanzhuan1 ./xuanzhuan.c
編譯出錯,改為arm-xilinx-linux-gnueabi-g++ -I/home/zed/opencv/opencv-2.4.8/install/include/opencv -I/home/zed/opencv/opencv-2.4.8/install/include/opencv2 -I/home/zed/opencv/opencv-2.4.8/install/include -L/home/zed/opencv/opencv-2.4.8/install/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann -lopencv_gpu -lopencv_nonfree -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_videostab -lstdc++ -fpermissive -o xuanzhuan1 ./xuanzhuan.c 雖然會有警告,但是可以編譯通過