天天看點

gcc編譯器-出現-fpermissive的問題gcc編譯器-出現-fpermissive的問題

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 雖然會有警告,但是可以編譯通過

g++