Linux C++项目 CMake-GUI 编译OpenCV和Multi-tracker

2023年09月26日 9:47:01 补充如下:

  • Linux下C++项目环境配置:
    • ① QT creator:IDE环境,需要对QT有一点的熟悉,要有QT windows等方面的基础,便于调试;以及编译库等。
    • ② 推荐vscode:安装如下插件:C/C++ coderunner Cmake,就可以实现和windows一样的调试和运行。
      • vscode注意:最好学习一点CMakeLists的写法,毕竟环境配置,路径配置等没有QT creator那样的GUI界面去添加!添加include lib linker,设置编译模式等需要自己去摸索一下!!(CMake有GUI可以初步入门;但是写CMakeLists最好也掌握一下)
      • vscode优势有调试窗口,跟python、matlab一样,可以在debug的时候输入一些命令来获取当前变量等的值;比QT creator更方便(或者QT类似功能我没发现过);和visual studio的监视窗口区类似(但是visal studio的监视窗口的语法和C++的语法不一样);vs code的命令行语法还有待确认。


2022年8月20日09:59:28 补充如下:


一、cmake opencv编译

参考:Linux 使用cmake构建OpenCV项目_sandalphon4869的博客-CSDN博客

参考:Linux 下编译安装OpenCV,Cmake的安装_wzy的博客-CSDN博客

1.1 opencv编译

  1. 安装cmake:sudo apt-get install cmake  注意这个不是gui的版本
    测试cmake是否安装成功:cmake --version
    cmake version 2.8.10.2
  2. 安装cmake-gui:sudo apt  install cmake-qt-gui
    命令行终端$:cmake-gui开启cmake界面
  3. 下载Opencv和opencv-contrib
    opencv-4.5.5下载地址:Tags · opencv/opencv · GitHub
    opencv4.5.5-contrib下载地址:Tags · opencv/opencv_contrib · GitHub
  4. 先安装 libgtk2.0-dev 和 pkg-config,,否则后期编译运行程序会出现类似如下的问题:

    OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /usr/local/opencv/OpenCV-2.0.0/src/highgui/window.cpp, line 100 
    terminate called after throwing an instance of 'cv::Exception'

    通过网络获取安装:

    # apt-get install libgtk2.0-dev
    # apt-get install pkg-config
  5. cmake-gui打开界面
    参考网址:3.1 (win10 + vs2019) cmake编译 (opencv4.1.0 + opencv_contrib4.1.0)_一点先森-CSDN博客要加入contrib地方:

伸手自取:Linux系统编译opencv4.0.1、opencv4.0.1 contrib及匹配测试代码_祝鹏辉-CSDN博客
Centros系统的,不适合我,哎。

 1.2 build multi-tracker工程

 使用如下命令进行build:由于开启了YOLO,需要CUDA_TOOLKIT

git clone https://github.com/Smorodov/Multitarget-tracker.git
cd Multitarget-tracker
mkdir build
cd build
cmake . .. -DUSE_OCV_BGFG=ON -DUSE_OCV_KCF=ON -DUSE_OCV_UKF=ON -DBUILD_YOLO_LIB=ON -DBUILD_YOLO_TENSORRT=ON -DBUILD_ASYNC_DETECTOR=ON -DBUILD_CARS_COUNTING=ON
       make -j
  1. 用cmake打开这个txt文件,就可以这里添加opencv的相关路径

  2. 遇到另一个问题:打开cmake.txt就看得到下面的红色图,勾选一些选项,加入opencv的路径,还需要几个路径:CUDA路径;CUDNN路径

    ① nvidia-smi命令行,看是否安装cudar如何看linux系统中有没有安装cuda,Linux系统CUDA10.2+CUDNN安装教程_RC-1136的博客-CSDN博客e
    ② cuda安装:sudo apt install nvidia-cuda-toolkit
    nvcc -V


    ③安装CUDNN Ubuntu 20.04 CUDA10.1&cuDNN安装方法全新整理-阿里云开发者社区
  • ❶下载地址:cuDNN Archive | NVIDIA Developer
    我自己注册了账号,终于下下来了。(注册账号的方法:科学上网+浏览器,最主要的原因是哪个验证码弹不出来,验证码方式为(图片识别,就是买火车票似的哪些是卡车),科学上网+不屏蔽图片验证码识别,基本就能注册成功,邮箱验证+重新登录(还来一遍验证码)
    P.S. 实在自己注册不行的,淘宝上有专门帮你下cuDNN的商家,收费不详。
  • ❷另外, 如果是linux 版本, 在阿里镜像上下很快。 附上链接
    阿里云开源镜像站资源目录 
    这个超级棒的  然而我没找到cuda10.1的cudnn版本,宣告失败 版本不一定全面,可先碰碰运气
  • ❸cuda10.1-cuda11.1所有版本链接:百度网盘 请输入提取码 提取码:rw1o 又碰运气
    这个又全是windows的,哎(版本不一定全面,可先碰碰运气

  • 无需注册登录NVIDIA官网下载CUDNN_justablackacat的博客-CSDN博客_cudnn下载
    避开注册的方法:没什么用 迅雷下的太慢了,然后挂掉了,下载失败
     
  • ❺最终:使用网盘下载的 百度网盘 请输入提取码  提取码:u6j0
    有linux cuda10.1的cudnn文件。但是三个deb文件不全,缺了dev.deb,缺了samples.deb,还需要另外下载。改天把所有文件传齐全了,分享一个百度云链接(待填坑4
  • ④ 安装:我是在sudo apt install nvidia-cuda-toolkit  安装的cuda,安装在/usr/cuda中,没有在local文件夹中
  • sudo cp cuda/include/cudnn.h    /usr/local/cuda/include  
    sudo cp cuda/lib64/libcudnn*    /usr/local/cuda/lib64
    sudo chmod a+r /usr/local/cuda/include/cudnn.h   /usr/local/cuda/lib64/libcudnn*

    我的去掉Local/cuda/路径,就是:

    sudo cp cuda/include/cudnn.h    /usr/include  
    sudo cp cuda/lib64/libcudnn*    /usr/lib64
    sudo chmod a+r /usr/include/cudnn.h   /usr/lib64/libcudnn*

    ⑤  安装pkg 三个

  1. cmake通过了

  2. 最终还没有运行和debug起来的原因:

  • Linux下C++的IDE不熟悉,没有win10的vs2015等简单(傻瓜化)。
  • 通过请教他人,得知Linux下的Eclipse和QT(待填坑1,均可实现方便的debug,不知道是否有win10的visual studio方便。
  • 有尝试Linux下的vscode运行C++工程待填坑2(非单个cpp)
    问题如下:
    ①json的设置,task.jason以及debug的json,并不太方便。②编译都没通过,学习成本和入门门槛有点高。Linux下C++开发似乎并不太容易。还需要进一步探索。

1.3 win10上的cmake通过结果如下,与Linux下cmake的使用方式一致

参考1.0.3节:多目标跟踪——阶段性进展_hello world-CSDN博客_多目标跟踪

win10下的编译器为:"visual studio 16 2019",Linux下C++的编译器还没试过,下次再续 待填坑3

二、vscode可视化----python debug 图形可视化

2022年3月28日,填坑:vscode docker python项目,调试可视化(图像变量)

VS Code 插件之 vscode-debug-visualizer - 松鼠闹IT - 博客园

 vscode插件:debug visualizer

pip安装:pip install vscodedebugvisualizer

debug visualizer教程位置:https://github.com/hediet/vscode-debug-visualizer/blob/master/demos/python/demo.py

可以看到是支持多种python格式的:pytorch的tensor,TensorFlow,pandas,numpy等,都是支持的

似乎运行不起来,我反正没看到效果

2.1 jupyter notebook可视化

Working with Jupyter code cells in the Python Interactive window

① debug模式,lauch.jason给出命令行参数

    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "args":["configs/mot/deepsort/sort_faster-rcnn_fpn_4e_mot17-private.py",
                "--input","/dataset_zhr/img1.avi",
                "--output","/dataset_zhr/test_MOT16-01_output.mp4"]
        }
    ]
}

② F5开始debug断点调试

③调试控制台打开,可以查看监视变量,输出变量内容等

④复制变量到Jupyter中,变为jupyter变量,即可查看

⑤打开变量查看,可以看到矩阵按照矩阵结构排列的,而不是一堆数据。很直观

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: cmake-gui是一个图形界面工具,用于帮助配置交叉编译环境。交叉编译是将源代码从一种平台编译成在另一种平台上运行的可执行程序的过程。以下是使用cmake-gui来配置交叉编译环境的步骤: 1. 打开cmake-gui工具。 2. 在"Where is the source code"字段中输入源代码的路径。 3. 在"Where to build the binaries"字段中输入生成的可执行文件的路径。 4. 在"Generator"字段中选择要使用的交叉编译器。 5. 在"Specify toolchain file"字段中选择交叉编译工具链文件。 6. 单击"Configure"按钮,cmake-gui将自动检测交叉编译器和工具链文件,并在窗口中显示相关的设置选项。 7. 根据实际情况修改和配置生成选项,例如选择要构建的目标平台、设置编译器选项等。 8. 单击"Generate"按钮,cmake-gui将生成Makefile或其他构建系统所需的配置文件。 9. 在终端中进入生成的可执行文件路径,并执行构建命令(例如make),即可开始交叉编译。 10. 等待编译过程完成,生成的可执行程序将位于指定的二进制路径中。 使用cmake-gui进行交叉编译配置可以简化配置过程,提供了直观的图形界面操作,同时也可以让开发人员灵活地根据需求进行各种配置选项的设置,方便进行跨平台开发和调试。 ### 回答2: cmake-gui是一个基于图形界面的CMake配置工具,用于帮助开发者进行跨平台和交叉编译的配置。 交叉编译是指在一个主机上构建、编译和运行适用于另一个主机系统的程序。在进行交叉编译配置之前,首先需要确定目标主机的架构、操作系统和编译器等信息。 使用cmake-gui进行交叉编译配置的步骤如下: 1. 打开cmake-gui工具。 2. 在"Where is the source code"一栏中,输入项目的源代码路径。 3. 在"Where to build the binaries"一栏中,输入项目的构建路径。这里可以选择在当前工作空间内或者指定一个新的目录。 4. 点击"Configure"按钮,选择对应的生成器。在弹出的对话框中,根据目标主机的操作系统类型选择对应的生成器。例如,如果目标主机是使用GNU make系统,则选择"Unix Makefiles"生成器。 5. 在"Optional platform for generator"一栏中,填写目标主机所属的平台。例如,如果目标主机是使用armv7架构,则填写"armv7"。 6. 在"Optional toolset to use"一栏中,填写用于构建目标程序的工具集。这里可以选择在配置时指定编译器和工具链。 7. 点击"Finish"按钮,开始进行交叉编译的配置过程。 8. 在配置过程中,cmake-gui会根据所选择的生成器和目标主机的相关信息,分析项目CMakeLists.txt文件,并生成相应的配置文件。如果配置过程中缺少依赖库或编译工具等,可以在cmake-gui的界面上进行相关设置。 9. 配置完成后,点击"Generate"按钮,即可生成对应的项目构建文件。 通过以上步骤,我们可以使用cmake-gui工具进行交叉编译配置,从而在不同的主机上构建和运行适用于目标主机系统的程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值