天天看點

cmakelist(cmakelist)

子目錄的cmakelist能直接使用父目錄的cmakelist的宏嗎

原來子目錄下面的src需要覆寫父目錄的src清單并且追加新的檔案 新檔案的寫法還要寫上相對于project_source_dir的路徑。 真特麼腦殘。既然都周遊下去了,還要指定源代碼路徑。你好!

可以,它會直接周遊所有cmakelist,不需要重新定義

僅代表個人觀點,不喜勿噴,謝謝。

cmakelist(cmakelist)

qt 怎麼打開cmakelist

Qt在編譯時,需要首先使用uic.exe編譯UI檔案,通過moc.exe處理Q_OBJECT之類的宏,當然你可以去掉這些定義,否則就需要加上: #COMPILEUIs SET(UIS mnwindow ) FOREACH(ui_file${UIS}) SET(TMP_IN"${PROJECT_SOURCE_DIR}/res/${ui_file}.ui") SET(TMP_OUT"${PROJECT_BINARY_DIR}/ui_${ui_file}.h") EXECUTE_PROCESS(COMMAND${QT_FOLDER}/bin/uic.exe-o${TMP_OUT}${TMP_IN}) MESSAGE(STATUS"EXEC=${QT_FOLDER}/bin/uic.exe-o${PROJECT_BINARY_DIR}/ui_${ui_file}.h${PROJECT_SOURCE_DIR}/res/${ui_file}.ui") ENDFOREACH(ui_file) #CREATEMOC SET(HEADERS mainwindow ) FOREACH(header_file${HEADERS}) SET(TMP_IN"${PROJECT_SOURCE_DIR}/inc/${header_file}.h") SET(TMP_OUT"${PROJECT_BINARY_DIR}/moc_${header_file}.cpp") EXECUTE_PROCESS(COMMAND${QT_FOLDER}/bin/moc.exe-o${TMP_OUT}${TMP_IN}) SET(MOCS${MOCS}${PROJECT_BINARY_DIR}/moc_${header_file}.cpp) MESSAGE(STATUS"EXEC=${QT_FOLDER}/bin/moc.exe-o${PROJECT_BINARY_DIR}/moc_${header_file}.cpp${PROJECT_SOURCE_DIR}/inc/${header_file}.h") ENDFOREACH(header_file) freec#.netqrcreator 這裡要注意的是:EXECUTE_PROCESS在COMMAND後面不能加引号,指令直接寫,否則執行的程式也不會出錯,但也不會正常運作.在qt creator中使用opencv庫 (windows 7系統下編譯成功)

編譯opencv2.0

1 下載下傳tdm-mingw-1.908.0-4.4.1-2并安裝,安裝完畢添加bin到系統路徑。

2 安裝opencv2.0 windows版本

3 安裝cmake

4 打開cmake,配置源碼與目标路徑,選擇mingw makefiles,生成目标makefile

5 進入設定好的目标路徑,make,直至生成所有的庫

配置qt creator

qt開發的程式一般需要借助qmake生成makefile檔案。由于qmake在解析路徑的時候不能識别空格, 是以需要確定opencv的安裝路徑中不能包含空格(c:/program files/opencv是不行的)。

在建立工程檔案的時候(這裡假設為hello.pro,字尾為pro),向工程中添加以下語句:

includepath+=d:/qt/opencv-2.0.0/include/opencv

libs+=d:/qt/opencv-2.0.0/lib/libcv200.dll.a/

d:/qt/opencv-2.0.0/lib/libcxcore200.dll.a/

d:/qt/opencv-2.0.0/lib/libml200.dll.a/

d:/qt/opencv-2.0.0/lib/libcvaux200.dll.a/

d:/qt/opencv-2.0.0/lib/libhighgui200.dll.a

這樣,在qt中就可以使用opencv 2.0 了

打開cmake,試一下,發現沒法完成configure!原因是cmake_make_program沒找到,這個簡單,修改該項為d:/qt/2010.04/mingw/bin(您自個看着改)。

繼續configure,什麼還出錯?彈出一大堆什麼dll找不到!!