OpenCV2.4.12 開啓 OpenGL

OpenCV默認情況下是不支持OpenGL的,如果要使OpenCV支持OpenGL,則需要重編譯,具體步驟如下:

注意事項: opencv2refman.pdf [點擊下載] 228頁來看,OpenGL僅支持32位操作系統;


一、準備工作:

(1)下載OpenCV2.4.12 [點擊下載]  ,並解壓到相應路徑,本文解壓在 D:\opencv-2.4.12;

(2)下載CMake工具 [點擊下載],並安裝;

(3)建一個重編譯後文件存放文件夾,本文存放在 D:\opencv-2.4.12 build.


二、開始重編譯:

(1)打開CMake,設置OpenCV2.4.12源碼目錄及 OpenCV2.4.12編譯存放目錄,勾選 Advanced 選項,如圖: 

(2)點擊 ConfigureSpecify the generator for this project 選擇對應的 Visual Studio 版本,比如:我電腦裝的是 Visual Studio 2013,故選擇 Visual Studio 12 2013,如圖所示:

然後按 Finish

(3)找到 WHTH_OPENGL ,並打勾,如圖:

(4)再次點擊 Configure,完成之後點擊 Generate,結果如下:

(5)打開 D:\opencv-2.4.12 build,找到 OpenCV.sln 並雙擊(使用 Visual Studio 打開);

(6)在 Debug 、Win32 環境下,選擇 ALL_BUILD,單擊右鍵,選擇 生成,如圖:


如果提示錯誤  error LNK1104:無法打開文件“python27_d.lib”,則把 python27_d.lib 下載下來點擊打開鏈接,放在Visual Studio 安裝目錄下的 VC\lib 文件下即可;然後,重新選擇 ALL_BUILD,單擊右鍵,選擇 生成即可;

(7)選擇 INSTALL,單擊右鍵,選擇 生成,如下圖:

(8)在 Release、Win32 環境下,重複(6)(7)步; 


三、Visual Studio環境配置:

(1)點擊 屬性管理器,分別打開 Debug | Win32Release | Win32 下的Microsoft.Cpp.Win32.user ,通用屬性 -> VC++ 目錄 -> 包含目錄 設置爲:

D:\opencv-2.4.12 build\install\include
D:\opencv-2.4.12 build\install\include\opencv
D:\opencv-2.4.12 build\install\include\opencv2

通用屬性 -> VC++ 目錄 -> 庫目錄 設置爲:

D:\opencv-2.4.12 build\install\x86\vc12\lib

如圖:

(2)鏈接器 -> 輸入 ->附加依賴項,Debug 環境配置爲:

opencv_calib3d2412d.lib

opencv_contrib2412d.lib

opencv_core2412d.lib

opencv_features2d2412d.lib

opencv_flann2412d.lib

opencv_gpu2412d.lib

opencv_highgui2412d.lib

opencv_imgproc2412d.lib

opencv_legacy2412d.lib

opencv_ml2412d.lib

opencv_nonfree2412d.lib

opencv_objdetect2412d.lib

opencv_ocl2412d.lib

opencv_photo2412d.lib

opencv_stitching2412d.lib

opencv_superres2412d.lib

opencv_ts2412d.lib

opencv_video2412d.lib

opencv_videostab2412d.lib

Release 環境配置爲:

opencv_calib3d2412.lib

opencv_contrib2412.lib

opencv_core2412.lib

opencv_features2d2412.lib

opencv_flann2412.lib

opencv_gpu2412.lib

opencv_highgui2412.lib

opencv_imgproc2412.lib

opencv_legacy2412.lib

opencv_ml2412.lib

opencv_nonfree2412.lib

opencv_objdetect2412.lib

opencv_ocl2412.lib

opencv_photo2412.lib

opencv_stitching2412.lib

opencv_superres2412.lib

opencv_ts2412.lib

opencv_video2412.lib

opencv_videostab2412.lib

kernel32.lib

user32.lib

gdi32.lib

winspool.lib

comdlg32.lib

advapi32.lib

shell32.lib

ole32.lib

oleaut32.lib

uuid.lib

odbc32.lib

odbccp32.lib

如圖:


(3)至此配置完成。


四、編譯時常見錯誤:

(1)若報如下錯誤:

錯誤	2	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1157	1	opengltest
錯誤	6	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1158	1	opengltest
錯誤	12	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1159	1	opengltest
錯誤	17	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1160	1	opengltest
錯誤	23	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1161	1	opengltest
錯誤	29	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1162	1	opengltest
錯誤	35	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1163	1	opengltest
錯誤	41	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1164	1	opengltest
錯誤	47	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1165	1	opengltest
錯誤	53	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1166	1	opengltest
錯誤	59	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1167	1	opengltest
錯誤	65	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1168	1	opengltest
錯誤	71	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1169	1	opengltest
錯誤	77	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1170	1	opengltest
錯誤	83	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1171	1	opengltest
錯誤	89	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1172	1	opengltest
錯誤	95	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1173	1	opengltest
錯誤	101	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1174	1	opengltest
錯誤	107	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1175	1	opengltest
錯誤	113	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1176	1	opengltest
錯誤	119	error C4430: 缺少類型說明符 - 假定爲 int。注意:  C++ 不支持默認 int	c:\program files\windows kits\8.1\include\um\gl\gl.h	1177	1	opengltest
錯誤	15	error C2371: “APIENTRY”: 重定義;不同的基類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1159	1	opengltest
錯誤	4	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1157	1	opengltest
錯誤	9	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1158	1	opengltest
錯誤	20	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1160	1	opengltest
錯誤	26	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1161	1	opengltest
錯誤	32	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1162	1	opengltest
錯誤	38	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1163	1	opengltest
錯誤	44	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1164	1	opengltest
錯誤	50	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1165	1	opengltest
錯誤	56	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1166	1	opengltest
錯誤	62	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1167	1	opengltest
錯誤	68	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1168	1	opengltest
錯誤	74	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1169	1	opengltest
錯誤	80	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1170	1	opengltest
錯誤	86	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1171	1	opengltest
錯誤	92	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1172	1	opengltest
錯誤	98	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1173	1	opengltest
錯誤	104	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1174	1	opengltest
錯誤	110	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1175	1	opengltest
錯誤	116	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1176	1	opengltest
錯誤	122	error C2182: “APIENTRY”: 非法使用“void”類型	c:\program files\windows kits\8.1\include\um\gl\gl.h	1177	1	opengltest
錯誤	121	error C2146: 語法錯誤: 缺少“;”(在標識符“glColor3dv”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1177	1	opengltest
錯誤	115	error C2146: 語法錯誤: 缺少“;”(在標識符“glColor3d”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1176	1	opengltest
錯誤	109	error C2146: 語法錯誤: 缺少“;”(在標識符“glColor3bv”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1175	1	opengltest
錯誤	103	error C2146: 語法錯誤: 缺少“;”(在標識符“glColor3b”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1174	1	opengltest
錯誤	97	error C2146: 語法錯誤: 缺少“;”(在標識符“glClipPlane”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1173	1	opengltest
錯誤	91	error C2146: 語法錯誤: 缺少“;”(在標識符“glClearStencil”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1172	1	opengltest
錯誤	85	error C2146: 語法錯誤: 缺少“;”(在標識符“glClearIndex”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1171	1	opengltest
錯誤	79	error C2146: 語法錯誤: 缺少“;”(在標識符“glClearDepth”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1170	1	opengltest
錯誤	73	error C2146: 語法錯誤: 缺少“;”(在標識符“glClearColor”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1169	1	opengltest
錯誤	67	error C2146: 語法錯誤: 缺少“;”(在標識符“glClearAccum”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1168	1	opengltest
錯誤	61	error C2146: 語法錯誤: 缺少“;”(在標識符“glClear”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1167	1	opengltest
錯誤	55	error C2146: 語法錯誤: 缺少“;”(在標識符“glCallLists”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1166	1	opengltest
錯誤	49	error C2146: 語法錯誤: 缺少“;”(在標識符“glCallList”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1165	1	opengltest
錯誤	11	error C2146: 語法錯誤: 缺少“;”(在標識符“GLboolean”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1159	1	opengltest
錯誤	43	error C2146: 語法錯誤: 缺少“;”(在標識符“glBlendFunc”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1164	1	opengltest
錯誤	37	error C2146: 語法錯誤: 缺少“;”(在標識符“glBitmap”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1163	1	opengltest
錯誤	31	error C2146: 語法錯誤: 缺少“;”(在標識符“glBindTexture”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1162	1	opengltest
錯誤	25	error C2146: 語法錯誤: 缺少“;”(在標識符“glBegin”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1161	1	opengltest
錯誤	19	error C2146: 語法錯誤: 缺少“;”(在標識符“glArrayElement”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1160	1	opengltest
錯誤	14	error C2146: 語法錯誤: 缺少“;”(在標識符“glAreTexturesResident”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1159	1	opengltest
錯誤	8	error C2146: 語法錯誤: 缺少“;”(在標識符“glAlphaFunc”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1158	1	opengltest
錯誤	3	error C2146: 語法錯誤: 缺少“;”(在標識符“glAccum”的前面)	c:\program files\windows kits\8.1\include\um\gl\gl.h	1157	1	opengltest
錯誤	1	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1157	1	opengltest
錯誤	5	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1158	1	opengltest
錯誤	16	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1160	1	opengltest
錯誤	22	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1161	1	opengltest
錯誤	28	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1162	1	opengltest
錯誤	34	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1163	1	opengltest
錯誤	40	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1164	1	opengltest
錯誤	46	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1165	1	opengltest
錯誤	52	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1166	1	opengltest
錯誤	58	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1167	1	opengltest
錯誤	64	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1168	1	opengltest
錯誤	70	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1169	1	opengltest
錯誤	76	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1170	1	opengltest
錯誤	82	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1171	1	opengltest
錯誤	88	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1172	1	opengltest
錯誤	94	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1173	1	opengltest
錯誤	100	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1174	1	opengltest
錯誤	106	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1175	1	opengltest
錯誤	112	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1176	1	opengltest
錯誤	118	error C2144: 語法錯誤:“void”的前面應有“;”	c:\program files\windows kits\8.1\include\um\gl\gl.h	1177	1	opengltest
錯誤	7	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1158	1	opengltest
錯誤	13	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1159	1	opengltest
錯誤	18	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1160	1	opengltest
錯誤	24	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1161	1	opengltest
錯誤	30	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1162	1	opengltest
錯誤	36	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1163	1	opengltest
錯誤	42	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1164	1	opengltest
錯誤	48	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1165	1	opengltest
錯誤	54	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1166	1	opengltest
錯誤	60	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1167	1	opengltest
錯誤	66	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1168	1	opengltest
錯誤	72	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1169	1	opengltest
錯誤	78	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1170	1	opengltest
錯誤	84	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1171	1	opengltest
錯誤	90	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1172	1	opengltest
錯誤	96	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1173	1	opengltest
錯誤	102	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1174	1	opengltest
錯誤	108	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1175	1	opengltest
錯誤	114	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1176	1	opengltest
錯誤	120	error C2086: “int WINGDIAPI”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1177	1	opengltest
錯誤	10	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1158	1	opengltest
錯誤	21	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1160	1	opengltest
錯誤	27	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1161	1	opengltest
錯誤	33	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1162	1	opengltest
錯誤	39	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1163	1	opengltest
錯誤	45	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1164	1	opengltest
錯誤	51	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1165	1	opengltest
錯誤	57	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1166	1	opengltest
錯誤	63	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1167	1	opengltest
錯誤	69	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1168	1	opengltest
錯誤	75	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1169	1	opengltest
錯誤	81	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1170	1	opengltest
錯誤	87	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1171	1	opengltest
錯誤	93	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1172	1	opengltest
錯誤	99	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1173	1	opengltest
錯誤	105	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1174	1	opengltest
錯誤	111	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1175	1	opengltest
錯誤	117	error C2086: “int APIENTRY”: 重定義	c:\program files\windows kits\8.1\include\um\gl\gl.h	1176	1	opengltest
錯誤	123	error C1003: 錯誤計數超過 100;正在停止編譯	c:\program files\windows kits\8.1\include\um\gl\gl.h	1177	1	opengltest


則在 GL.h 文件下,添加 #include <windows.h> 頭文件即可;

如圖:


(2)若報如下錯誤:

錯誤	5	error LNK2019: 無法解析的外部符號 __imp__glRectf@16,該符號在函數 "void __cdecl onDraw(void *)" (?onDraw@@YAXPAX@Z) 中被引用	F:\VS2013 program\opengltest\opengltest\opengltest.obj	opengltest
錯誤	4	error LNK2019: 無法解析的外部符號 __imp__glFlush@0,該符號在函數 "void __cdecl onDraw(void *)" (?onDraw@@YAXPAX@Z) 中被引用	F:\VS2013 program\opengltest\opengltest\opengltest.obj	opengltest
錯誤	3	error LNK2019: 無法解析的外部符號 __imp__glColor3f@12,該符號在函數 "void __cdecl onDraw(void *)" (?onDraw@@YAXPAX@Z) 中被引用	F:\VS2013 program\opengltest\opengltest\opengltest.obj	opengltest
錯誤	2	error LNK2019: 無法解析的外部符號 __imp__glClearColor@16,該符號在函數 "void __cdecl onDraw(void *)" (?onDraw@@YAXPAX@Z) 中被引用	F:\VS2013 program\opengltest\opengltest\opengltest.obj	opengltest
錯誤	1	error LNK2019: 無法解析的外部符號 __imp__glClear@4,該符號在函數 "void __cdecl onDraw(void *)" (?onDraw@@YAXPAX@Z) 中被引用	F:\VS2013 program\opengltest\opengltest\opengltest.obj	opengltest
錯誤	6	error LNK1120: 5 個無法解析的外部命令	F:\VS2013 program\opengltest\Debug\opengltest.exe	opengltest

則在 main 函數所在文件下添加 #pragma comment(lib,"opengl32.lib") 即可;

(3)若編譯成功,在 cmd終端 運行時報錯爲“OpenCV Error: No OpenGL support (Library was built without OpenGL support) ……”,則把編譯前的文件刪除即可,即把 D:\opencv-2.4.12 文件夾刪除即可;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章