天天看点

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找不到!!