windows下使用CMake和VS来编译POCO库
1.下载poco 已发布的版本源代码: POCO发行版下载地址 (此次下载的是V1.9.4版本,注意,如果下载的版本过高,可能需要编译器支持 C++14/17,以及需要更高版本的CMake) :
poco github 仓库地址:POCO github地址
编译
方式1.
1) 进入poco-1.9.4文件夹,即源码目录,创建build文件夹
2)打开windows的命令行,进入build目录,执行下面命令(注意:命令最后一句的 ..
):
mkdir cmake_build_x86
cd cmake_build_x86
cmake -G "Visual Studio 14 2015" ..
如果需要编译64位,则增加构建参数Win64
即可,如下:
mkdir cmake_build_x64
cd cmake_build_x64
cmake -G "Visual Studio 14 2015 Win64" ..
如果不知道当前编译器的版本号,可以进入VS内查看,或者输入CMake -G 查看
执行上述命令之后,会在对应的build目录生成 Poco.sln工程, 使用对应的Visual Studio
打开,编译ALL_BUILD
即可, 会在build目录bin, lib生成 动态库.dll,及 链接库.lib
以上编译方法,也可以使用CMake GUI来配置和生成工程文件,和命令行是相同的原理
方式2
Windows上编译非常简单,很傻瓜,有两种方式
- 直接使用VS命令行工具运行代码根目录下的
buildwin.cmd
脚本,然后根据需要填写编译参数,例如:(VS2015编译32位poco库)
buildwin.cmd 140 build all both Win32 nosamples notests devenv
编译参数,可以在 buildwin.cmd
中查看,如图:
2. 使用VS命令行工具,直接运行源码目录下的 build_vs[90,100,110...].cmd
后缀代表对应的MSVC编译器版本号,对应关系可以参考下表,由于我的VS版本为VS2015,对应MSVC为140,所以此处我运行build_vs140.cmd
脚本
MSC 1.0 _MSC_VER == 100
MSC 2.0 _MSC_VER == 200
MSC 3.0 _MSC_VER == 300
MSC 4.0 _MSC_VER == 400
MSC 5.0 _MSC_VER == 500
MSC 6.0 _MSC_VER == 600
MSC 7.0 _MSC_VER == 700
MSVC++ 1.0 _MSC_VER == 800
MSVC++ 2.0 _MSC_VER == 900
MSVC++ 4.0 _MSC_VER == 1000 (Developer Studio 4.0)
MSVC++ 4.2 _MSC_VER == 1020 (Developer Studio 4.2)
MSVC++ 5.0 _MSC_VER == 1100 (Visual Studio 97 version 5.0)
MSVC++ 6.0 _MSC_VER == 1200 (Visual Studio 6.0 version 6.0)
MSVC++ 7.0 _MSC_VER == 1300 (Visual Studio .NET 2002 version 7.0)
MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio .NET 2003 version 7.1)
MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005 version 8.0)
MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008 version 9.0)
MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010 version 10.0)
MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012 version 11.0)
MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013 version 12.0)
MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015 version 14.0)
MSVC++ 14.1 _MSC_VER == 1910 (Visual Studio 2017 version 15.0)
MSVC++ 14.11 _MSC_VER == 1911 (Visual Studio 2017 version 15.3)
MSVC++ 14.12 _MSC_VER == 1912 (Visual Studio 2017 version 15.5)
MSVC++ 14.13 _MSC_VER == 1913 (Visual Studio 2017 version 15.6)
MSVC++ 14.14 _MSC_VER == 1914 (Visual Studio 2017 version 15.7)
MSVC++ 14.15 _MSC_VER == 1915 (Visual Studio 2017 version 15.8)
MSVC++ 14.16 _MSC_VER == 1916 (Visual Studio 2017 version 15.9)
MSVC++ 14.2 _MSC_VER == 1920 (Visual Studio 2019 Version 16.0)
MSVC++ 14.21 _MSC_VER == 1921 (Visual Studio 2019 Version 16.1)
MSVC++ 14.22 _MSC_VER == 1922 (Visual Studio 2019 Version 16.2)
可以看到,build_vs140.cmd
脚本文件的内容,其实也还是运行 buildwin.cmd
脚本,只不过是填了一些参数而已,这些参数也可以使用上面的方法,自己去填写