开发环境:

1、可以迅速处理大量并发网络数据包,ASIO库和winpcap 4.1.3库;

2、处理与显示点云模型数据,使用VTK 8.2.0库;

3、项目使用CMake+VC2017编译,GUI使用QT 5.12.5,Lib使用Boost 1.7.0与C++ 11;

4、开发工具QT Creator 4.1(VC2017辅助)、CMake 3.11.2,可以编译32位与64位版本;

工具和库的生成与配置:

1、VS2017与QT 5.12.5,CMake 3.11.2开发环境直接官网下载安装即可。

2、Boost 1.7.0官网下载库,然后编译成64位Debug与Release版本,操作参考

指令如下

b2 install --toolset=msvc-14.1 --prefix="D:\ScanSource\download\Boost\vc141" link=static runtime-link=shared threading=multi debug release

3、VTK 8.2.0官网下载源码,使用CMake-GUI工具,其中参数选择支持QT,设置QT安装路径,执行编译大概步骤如下:

QT5_DIR= C:\Qt\Qt5.12.6\5.12.6\msvc2017_64\lib\cmake\Qt5(设置QT5的目录)

CMAKE_INSTALL_PREFIX=D:\ScanSource\VTK\msvc2017_64(编译生成目录)

编译工程ALL_BUILD开始编译生成库文件(VC中选择要编译的版本,我选择64位的debug和release),完成后选择编译INSTALL,他会把库与头文件拷贝到你设置的编译生成目录中。

4、winpcap 直接使用 VeloView项目中编译后的文件,编译方法应该大体相同。

使用CMake创建项目:

QTCreator与MSVC2017都支持通过CMakeLists.txt文件创建项目,但是我发现MSVC2017的QT插件没能识别出QT项目,需要配置QT环境变量挺麻烦的,所以我最后使用QTCreator工具,工具内可以直接设置CMake参数,CMake的语法提示做的也挺好的。

CMake项目主体结构

Src/CMakeLists.txt (项目配置信息)

Src/main.cpp (项目所包含的cpp,h,cxx等等文件)

Lib (项目所需要的库文件的 Lib include)

Build (通过CMake编译出的项目文件,如果使用MSVC工具会生成工程文件,如果是QTCreator会生成一个Debug版本的对应平台的目录)

bin (我在CMakeLists.txt设定的程序生成路径,Debug与Release分开存放,包括exe、dll 、config文件等等)

使用VC2107创建项目:

1、使用QT Creator创建一个CMake版本的QWidget窗体项目,然后使用CMakeGUI根据创建的CMakeLists.txt生成VC2017项目。(我偷懒用QTCreator直接生成了)

2、在CMakeGUI上设置项目的源码目录与项目生成目录,点击Configure,选择VS2017 64位版本,点击Configure开始编译,如果CMakeLists.txt设定引用库,会提示设定该库的路径。

3、 设置QT5DIR,我的开发环境是VS2017_64,所以找到安装的对应目录C:/Qt/Qt5.12.5/5.12.5/msvc2017_64/lib/cmake/Qt5设置一下,重新配置,然后生成,然后就可以用VS2017打开项目了。

设置VTK_DIR为 D:\ScanSource\Lib\VTK-8.2.0\lib\cmake\vtk-8.2,

设置Boost_INCLUDE_DIR为D:\ScanSource\Lib\boost_1_70_0,项目就可以编译通过,然后点击 Open Project,会使用MSVC2017打开项目。CMake-GUI设置位置

使用QTCreator创建项目

qtcreator工具可以直接设置CMake的参数,执行CMake命令就可以,没有问题就可以编译项目,其中CMakeLists.txt.user就是设置的变量保存位置。

项目中引用Boost库与VTK库,并且测试

1、Boost引用

find_package(Boost 1.70.0 REQUIRED)

if(Boost_FOUND)

message(Boost_INCLUDE_DIRS " ${Boost_INCLUDE_DIRS}")

message(Boost_DIR " ${Boost_DIR}")

set(Boost_LIBRARY_DIR "D:/ScanSource/Lib/boost_1_70_0/vc141/lib")

endif()

include_directories(${Boost_INCLUDE_DIRS})

link_directories(${Boost_LIBRARY_DIR})

2、VTK引用

find_package(VTK 8.2.0 REQUIRED)

if(VTK_FOUND)

message(VTK_DIR " ${VTK_DIR}")

endif()

.

.

.

include(${VTK_USE_FILE})

target_link_libraries(appname ${VTK_LIBRARIES})

3、测试版本

#include

#include

#include

#include

static void PrintEnv()

{

std::cout << "==== DeviceLib Ver" << DEVICE_COMMON_VERSION << "===============" << std::endl;

std::cout << "扫描设备驱动库" << std::endl;

std::cout << "Boost 版本g:" << BOOST_VERSION << std::endl;

std::cout << "Boost Lib 版本:" << BOOST_LIB_VERSION << std::endl;

std::cout << "VTK 版本:" << VTK_VERSION << std::endl;

std::cout << "OS :" << BOOST_PLATFORM << std::endl;

std::cout << "编译器:" << BOOST_COMPILER << std::endl;

std::cout << "标准库:" << BOOST_STDLIB << std::endl;

std::cout << "============================" << std::endl;

}

cmake开发环境 linux qt_一步步搭建CMake+QT+VTK+BOOST开发环境相关推荐

  1. Linux手机DIY.移植软件专题.Qt/Qte的编译环境

    Linux手机DIY.移植软件专题.Qt/Qte的编译环境 草木瓜  于 2006-11-15 一.序 一个偶然的想法,把在夏新E600出现Segmentation Fault的QT程序放在 Moto ...

  2. python后端开发web_WEB开发系列3:一步步打造强大的Python后端开发环境

    前言 上一节中,我们强烈推荐Python作为web开发的主要编程语言.接下来,我们将开始一步步安装和配置Python项目开发环境,并使用VSCode作为IDE工具,快速上手Python的WEB开发之旅 ...

  3. Linux mono环境,linux+mono+xsp+apache搭建asp.net环境

    linux+mono+xsp+apache搭建asp.net环境 发布时间:2020-10-09 18:20:35 来源:51CTO 阅读:3101 作者:huilinux 环境: 系统:centos ...

  4. linux内核led驱动开发,从Linux内核LED驱动来理解字符设备驱动开发流程

    目录 博客说明 开发环境 1. Linux字符设备驱动的组成 1.1 字符设备驱动模块加载与卸载函数 1.2 字符设备驱动的file_operations 结构体中的成员函数 2. 字符设备驱动--设 ...

  5. linux内核移植与开发板,Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解

    Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解 [复制链接] 今天终于让Linux内核在飞凌的板子上跑起来了,想来也是艰辛,为了移植成功,断断续续做了将近两个月的努力,期间郁闷不可 ...

  6. 支持4k输出的linux开发板,Linux 5.12率先开始支持SiFive的RISC-V FU740开发板

    原标题:Linux 5.12率先开始支持SiFive的RISC-V FU740开发板 来源:cnBeta.COM Linux 5.12合并窗口在本周末即将结束,而今早送来的是RISC-V的更新,这足以 ...

  7. Qt VTK软件开发问题学习记录

    1. 0x00000000000000处有未经处理的异样 程序运行时出现下面问题肯定是内存错误,但到底是数组越界(数组边界溢出),指针错误,链接库问题......就需要进一步调试(debug). 链接 ...

  8. QT VTK 结合开发

    QT VTK 经常需要结合开发,我的环境是 QT5 .VS2015,WIN10 一.先用VS 创建QT项目,界面类的,最好先整好,个别个面处理也可以:保留此项目: 二.使用CMake 将VTK 编译进 ...

  9. linux如何搭建lamp环境,Linux操作系统下搭建LAMP环境

    准备:先在目录home/csy/下建website代码目录,然后新建php文件,命名为test.php. 在test.php编写代码如下: php phpinfo(); ?> 保存并退出. 一. ...

最新文章

  1. 深度学习中Batch、Iteration、Epoch的概念与区别
  2. 如何下载Android源码(非常详细,含自动恢复下载,编译,运行模拟器说明)
  3. centos哪个版本好用_Ubuntu VS CentOS,谁才是更好的 Linux 版本?
  4. mysql扩展中如何处理结果集_请写出PHP处理结果集的5个函数(使用mysql扩展)_学小易找答案...
  5. [企业内部https证书配置]tomcat 7配置https的完整历程
  6. Node.js区块链开发pdf
  7. 反卷积可视化工具--deconv-deep-vis-toolbox
  8. Composite模式
  9. android实现应用程序仅仅有在第一次启动时显示引导界面
  10. SPSS基础教程:SPSS菜单命令详解
  11. Python3中的md5加密
  12. 天猫自营和京东自营的区别
  13. alpha shapes提取边界原理及详细步骤
  14. venv文件夹里没有bin
  15. 关于java集合的查找和删除的小程序
  16. uniapp 中APP端调用uni.getLocation偶尔获取不到address解决方法
  17. 信息系统项目管理师(2022年)—— 重点内容:项目人力资源管理(9)
  18. 开启投简历找工作新征程
  19. python云图制作壮观天体照_Python爬取个人博客,带你制作高逼格的数据聚合云图...
  20. 【手册】如何编译/修改三星手机Rom(一)

热门文章

  1. GPU上如何优化卷积
  2. 目标识别的选择性搜索
  3. TensorRT 加速性能分析
  4. YOLO v1到YOLO v4(上)
  5. [JAVA EE]Spring Boot 控制层:参数传递方法
  6. vue 不是内部或外部命令,也不是可运行的程序 或批处理文件
  7. android Android build.gradle 配置注释
  8. 前端之css基础学习(更正版)
  9. 课后习题代码持续更新。。。。。。。。。。。。。
  10. react组件回顶部