最近在调试车牌识别EasyPR,直接使用Vim编写也是可以,但是对于很多习惯用IDE编写程序的码农来讲,Qt是linux下编程的一个好工具,本文其实是结合Ogre Wiki的Qt Tutorials[1]和网上的相关blog[2-4]来做个小结。
一 、打开项目
-
按以下顺序打开项目:
【Qt Creator】→【File 】→【Open File or Project..】(或者快捷键Ctrl+O),打开对应的“CMakeLists.txt”文件,如图所示:
选择编译路径
按照1.后会弹出以下窗口,就是选择编译生成的路径,由于EasyPR的编译脚本如下所示:
#!/usr/bin/env bash
rm -rf build
mkdir build
cd build
cmake ..
make
所以我就没有使用Qt Creator给出的默认路径。
/home/robot/workspace/EasyPR-build
而是改成:
/home/robot/workspace/EasyPR/build
对于其他CMakeList.txt项目的导入,也根据需求配置路径,免得后面出现问题。
-
运行CMake
对于EasyPR项目,直接点击【Run CMake】即可完成编译,如下图所示:
CSDN的一个博主deng_sai指出[2]:
此处可能点击Run CMake后Qt Creator 没反应。可能是Qt Creator的CMake的执行命令的路径没指定。
按序点击:Projects->Manage Kits...->Build & Run -> CMake(可以指定为cmake,也可直接指定cmake-gui。不过假如首先指定的是cmake-gui,run cmake后可能无法显示导入的工程文件,需要再次指定为cmake后再一次run cmake)
点击【Finish】
项目的文件结构已经显示在Qt Creator中了:
- 修改项目名
可以通过修改“CMakeLists.txt”中的
project(easypr)
来修改Qt Creator中显示的项目名,如改为:
project(EasyPR)
保存后右键点击项目easypr [master]后点击【Run CMake】,再执行步骤3. 的【Run CMake】,然后【Finish】返回到Qt Creator的主界面。
PS:完成以上步骤1-3后,项目已经编译完成,会有可执行文件在CMakeList.txt中指定的路径中了,如下:
# MESSAGE(${CMAKE_BINARY_DIR}/../)
SET_TARGET_PROPERTIES(${EXECUTABLE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/../")
所以就是在“build”所在的目录中。
可能有的项目会没有编译,所以[1]中建议进入导入后的项目所在目录后再终端执行:
make && make install
对于我们编程来说,我建议只执行make
指令。
二、配置项目的执行环境
完成上述步骤后,已经生成了项目的可执行文件,实际上已经可实行绿色箭头的【Run】,但是在首次运行中,会因为在Qt中没有配置好执行的路径,可能会运行出错,需要执行如下操作,
打开Qt Creator主界面左边的【Project】后,选择【Build & Run】选项卡,可以修改“Run”下的“Arguments”和“Working directory”,并在“Run in Terminal”后打钩,如EasyPR项目,我作出如下修改:
三、小结
到此为止,已经能在Qt中运行可执行文件了。但是Qt本身对中文的支持并不完美,现在对我项目影响不大,暂时忽略。欢迎大神们补充。
【参考文献】
[1] Setting Up An Application With QtCreator - Linux
[2] Qt Creator 根据已有的CMakeList.txt创建CMake工程
[3] 用 cmake 构建Qt工程(对比qmake进行学习)
[4] 学习用CMake来编写Qt程序
[5] qmake 教程
[6] cmake 添加头文件目录,链接动态、静态库
[7] CMAKE的使用
[8] CmakeList的编写和参数详解
[9] ROS编程中如何配置CMakelists.txt来调用外部的动态链接库(.so文件)
[10] CMake常见指令总结,修改的更加容易理解