qt中cmake編譯太慢
① window下用vs2012和cmake重新編譯opencv2.4.13怎麼老是卡在vs2012上報錯
使用opencv需要編譯源碼,得到庫文件。可以用cmake構建項目後編譯,也可以直接用官方提供的編譯好的版本。 官方提供的編譯庫一般只是標准版本,可能與某些庫並不兼容,比如官方提供的編譯好的版本與opengl就不兼容,這時就只能自己構建項目後編...
② 請問用win764位系統開發qt軟體需要什麼環境
1.搭建C++開發環境,使用mingw32或者visualstudio。這個很簡單,mingw32的話直接使用官網的mingw-get安裝工具在線安裝,推薦使用預打包的庫,這樣不會有兼容問題。白天裝比晚上效果要好的多。VS的話推薦使用vs2010或以上的版本,至於哪裡弄的話,請網路,你懂的,很多資源,注意這兩個都是32位的,不需要64位的,而且64的各種問題……
2.安裝cmake,這個可以是預編譯的二進制,也可以是源碼再自己編譯。這個和你使用的編譯環境沒關系,cmake是為了輸出makefile的,所以只要有這個裝在電腦上就行了,注意這個預編譯版本只有32位的(x86)。mingw32自己編譯的話,包裝的差不多基本上就沒啥困難了。其實cmake這個可以不裝,但是有個問題存在,如果使用mingw32的話,還要一個IDE環境,一般QT我們在windows上都用Qtcreator2.6.1/Qt4.8.4。但是這貨啟動就會檢查cmake……
至於vs,我不清楚,反正qt本身沒有要求cmake,估計是不用的。
3.從qt-project網站下載opensource版的Qt,注意!Qt5默認加入了openGL支持,你要是想用就要注意你確實能滿足這個條件不。推薦使用4.8.8版本,畢竟Qt的資料少的可憐,Qt5放出來還沒幾個月呢,根本沒啥資料。mingw和vs是不一樣的。話說vs版本要求2010,最好是這個,支持比較多。
4.mingw的話,要裝qtcreator2.6。畢竟沒有IDE很難搞,即使裝了cmake也可能出現cmake環境配置不正確的問題,這樣只要打開qtcreator然後如果發生cmake錯誤,那麼不管,直接進到選項->構建和運行下邊的選項把你的mingw編譯器設置進去,cmake目錄指到你的cmake.exe上,默認的安裝地址為mignw/bin下邊。然後確定你的mingw編譯器被自動識別出來才行。就是cmake標簽前面那個編譯器的標簽下邊要有mingw(x86)這一項
。這樣基本上就差不多了。qtcreator的話,很好用。
VS2010要在qt-project網站上下載vs-addin,然後它會為你完成大部分的工作。這個我並沒有用,因為vs太大了,啟動很慢,而且和qt工具集成的不是那麼漂亮。
最後,反正我是正常運行的……用的還好,就是參考文檔還是太少。
③ cmake很簡單的故障問題,怎麼解決
1.開始的時候著實折騰了好長時間,一直以為是代碼的問題,所以就在代碼中進行了跟蹤,結果怎麼都找不到問題,後來就是這份代碼,直接make後,替換原有的系統的協議庫,發現代碼沒有問題,排除了代碼問題。這個問題花時間很久大概有一天時間。
2.發現是編譯方式不同導致的問題後,對兩個文件進行了對比,發現使用Cmake編譯出來的可執行文件是「no stripped」,以為是這個原因,後來就解決strip可執行文件的問題,在網上又是一頓狂找,最終使用「add_custom_command」定製命令的方式得到了解決,滿心歡喜的看到所有應用文件都stripped了,滿心以為這下可好了,但是替換以後仍然通訊異常,這個過程大概花了半天時間。
3.問題得不到解決很郁悶,繼續對比兩個文件的差異,發現即使是stripped以後,使用CMake編譯出來的的文件仍然比直接使用Makefile文件make出來的文件要大不少,這些得到了一些啟示,去看了下Makefile文件。通過查看Makefile和對比CMakeLists.txt文件發現,Makefile中的編譯採用的宏控制,輸出的是Release版本,而CMakeLists.txt中默認的輸出Debug版本。找到問題所在了以後,直接又從網上找到「SET(CMAKE_BUILD_TYPE Release ON)」的方式進行了Release版本設置。
4.後來還發現CMakeLists.txt中的編譯選項也是採用的默認方式,而Makefile中卻有使用,所以乾脆就直接將編譯選項也直接拿過來。
SET(CMAKE_C_FLAGS "-O2 -pipe -fPIC -Wall -fmessage-length=0")
SET(CMAKE_CXX_FLAGS "-O2 -pipe -fPIC -Wall -fmessage-length=0")
5.然後直接進行了編譯,看到編譯後的應用果然文件大小又小了很多,這下覺得沒有問題了,進行整體更換,reboot系統,查看模擬器與設備的通訊情況,正常。ok,這一天算是沒有白費,將正常後的CMakeLists.txt都更新到svn中。
④ OSX系統用QT編譯cmakelist文件時出錯 在這無限循環
循環冗餘檢查的意思就是告訴你 某個區域讀不出來 然後無限循環的讀那個區域,直到時間用完 可能是碟或者光碟機問題 個人更趨向與碟的問題 你看下碟是否有劃痕 或者在別人的機器上試下 如果是正版而且不是你光碟機問題 那麼你可以索賠的
⑤ linux下cmake編譯opencv 為什麼這么慢
是你的編譯器版本不對, You probably need to select a different build tool. 在點擊configure時,會出來一個選擇編譯器的框,你選一個你機器里有的編譯器就可以了。
⑥ 使用CMake構建Qt程序
Ubuntu系統中默認安裝了Qt,這樣安裝的Qt不僅版本較低,而且切換版本麻煩,可能導致某些依賴系統Qt的程序無法正常使用
去官網使用離線安裝包或在線安裝包安裝任意路徑即可
在CMakeLists.txt文件中添加如下,指定Qt庫位置
⑦ qt5.7.1配置opencv3.1.0的時候用cmake編譯opencv總是出錯。每一步都是按照網上教程來的,不知道為什麼
看你這提示Qt的安裝包里沒有make程序,你檢查一下bin目錄有make.exe文件么。
⑧ 直接用Qt creator 與用cmake 有什麼不同
您好,我來為您解答:
雖然qtcreator是輕量級的編譯工具,但在一定程度上,用cmake效果更好,更快,特別是大型的項目,cmake編譯得更快。
希望我的回答對你有幫助。
⑨ OSX系統用QT編譯cmakelist文件時出錯 在這無限循環
Qt在編譯時,需要首先使用uic.exe編譯UI文件,通過moc.exe處理Q_OBJECT之類的宏,當然你可以去掉這些定義,否則就需要加上:#COMPILEUIsSET(UISmnwindow)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)#CREATEMOCSET(HEADERSmainwindow)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執行Cmake時Cmake出現這種情況時為什麼
在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找不到!!
好吧,我直接把D:/Qt/2010.04/mingw/bin放到環境變數中去。
Delete Catch以後再來一次,這下好了,連CMAKE_MAKE_PROGRAM都不用改了,自動找到。成功configure。
然後Generate一下。