boost安装_一步步搭建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:ScanSourcedownloadBoostvc141" link=static runtime-link=shared threading=multi debug release
3、VTK 8.2.0官网下载源码,使用CMake-GUI工具,其中参数选择支持QT,设置QT安装路径,执行编译大概步骤如下:
QT5_DIR= C:QtQt5.12.65.12.6msvc2017_64libcmakeQt5(设置QT5的目录)
CMAKE_INSTALL_PREFIX=D:ScanSourceVTKmsvc2017_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设定引用库,会提示设定该库的路径。

eceebffb9e9ca63b60daf3df38658e78.png

3、 设置QT5DIR,我的开发环境是VS2017_64,所以找到安装的对应目录C:/Qt/Qt5.12.5/5.12.5/msvc2017_64/lib/cmake/Qt5设置一下,重新配置,然后生成,然后就可以用VS2017打开项目了。设置VTK_DIR为 D:ScanSourceLibVTK-8.2.0libcmakevtk-8.2,设置Boost_INCLUDE_DIR为D:ScanSourceLibboost_1_70_0,项目就可以编译通过,然后点击 Open Project,会使用MSVC2017打开项目。

f9757dfbd8bec42de0b77bbd7375524f.png
CMake-GUI设置位置

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

3ee8a1938ed6d8234836220bd17fbe1f.png

项目中引用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 <boost/version.hpp>
#include <boost/config.hpp>
#include <vtkVersion.h>
#include <vtkConfigure.h>    
    

    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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值