cmake开发环境 linux qt_一步步搭建CMake+QT+VTK+BOOST开发环境
开发环境:
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开发环境相关推荐
- Linux手机DIY.移植软件专题.Qt/Qte的编译环境
Linux手机DIY.移植软件专题.Qt/Qte的编译环境 草木瓜 于 2006-11-15 一.序 一个偶然的想法,把在夏新E600出现Segmentation Fault的QT程序放在 Moto ...
- python后端开发web_WEB开发系列3:一步步打造强大的Python后端开发环境
前言 上一节中,我们强烈推荐Python作为web开发的主要编程语言.接下来,我们将开始一步步安装和配置Python项目开发环境,并使用VSCode作为IDE工具,快速上手Python的WEB开发之旅 ...
- Linux mono环境,linux+mono+xsp+apache搭建asp.net环境
linux+mono+xsp+apache搭建asp.net环境 发布时间:2020-10-09 18:20:35 来源:51CTO 阅读:3101 作者:huilinux 环境: 系统:centos ...
- linux内核led驱动开发,从Linux内核LED驱动来理解字符设备驱动开发流程
目录 博客说明 开发环境 1. Linux字符设备驱动的组成 1.1 字符设备驱动模块加载与卸载函数 1.2 字符设备驱动的file_operations 结构体中的成员函数 2. 字符设备驱动--设 ...
- linux内核移植与开发板,Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解
Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解 [复制链接] 今天终于让Linux内核在飞凌的板子上跑起来了,想来也是艰辛,为了移植成功,断断续续做了将近两个月的努力,期间郁闷不可 ...
- 支持4k输出的linux开发板,Linux 5.12率先开始支持SiFive的RISC-V FU740开发板
原标题:Linux 5.12率先开始支持SiFive的RISC-V FU740开发板 来源:cnBeta.COM Linux 5.12合并窗口在本周末即将结束,而今早送来的是RISC-V的更新,这足以 ...
- Qt VTK软件开发问题学习记录
1. 0x00000000000000处有未经处理的异样 程序运行时出现下面问题肯定是内存错误,但到底是数组越界(数组边界溢出),指针错误,链接库问题......就需要进一步调试(debug). 链接 ...
- QT VTK 结合开发
QT VTK 经常需要结合开发,我的环境是 QT5 .VS2015,WIN10 一.先用VS 创建QT项目,界面类的,最好先整好,个别个面处理也可以:保留此项目: 二.使用CMake 将VTK 编译进 ...
- linux如何搭建lamp环境,Linux操作系统下搭建LAMP环境
准备:先在目录home/csy/下建website代码目录,然后新建php文件,命名为test.php. 在test.php编写代码如下: php phpinfo(); ?> 保存并退出. 一. ...
最新文章
- 深度学习中Batch、Iteration、Epoch的概念与区别
- 如何下载Android源码(非常详细,含自动恢复下载,编译,运行模拟器说明)
- centos哪个版本好用_Ubuntu VS CentOS,谁才是更好的 Linux 版本?
- mysql扩展中如何处理结果集_请写出PHP处理结果集的5个函数(使用mysql扩展)_学小易找答案...
- [企业内部https证书配置]tomcat 7配置https的完整历程
- Node.js区块链开发pdf
- 反卷积可视化工具--deconv-deep-vis-toolbox
- Composite模式
- android实现应用程序仅仅有在第一次启动时显示引导界面
- SPSS基础教程:SPSS菜单命令详解
- Python3中的md5加密
- 天猫自营和京东自营的区别
- alpha shapes提取边界原理及详细步骤
- venv文件夹里没有bin
- 关于java集合的查找和删除的小程序
- uniapp 中APP端调用uni.getLocation偶尔获取不到address解决方法
- 信息系统项目管理师(2022年)—— 重点内容:项目人力资源管理(9)
- 开启投简历找工作新征程
- python云图制作壮观天体照_Python爬取个人博客,带你制作高逼格的数据聚合云图...
- 【手册】如何编译/修改三星手机Rom(一)