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

本文介绍了如何一步步在Linux环境下搭建CMake、QT、VTK和BOOST的开发环境。详细讲解了Boost库和VTK库的编译配置,以及在VS2017和QT Creator中使用CMake创建项目的过程。
摘要由CSDN通过智能技术生成

开发环境:

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;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值