Windows下设置基于POCO库的C++开发环境

POCO 库是一个现代,功能强大的开源C ++类库,用于构建在台式机,服务器,移动和嵌入式系统上运行的基于网络和互联网的应用程序。不光如此,里面也包含了非常有用的其它类库。从文件,基本IO,异常处理,调试,内存管理,类型和字节管理,字符串,格式化,日期处理,通知,事件,多线程,缓存框架,哈希框架,进程管理,XML,JSON,配置管理,日志,应用框架,网络编程,数据库访问等等。一份代码,所有平台运行。

下载POCO库

点此进入下载页面

如果有OpenSSL,MySQL Client,ODBC等功能需要开发的话,可以下载Complete Edition版本,快速开发可以先选择Basic Edition。当然下载了Complete Edition也可以,相应的功能模块不编译即可。因为POCO是基于模块来编译的,例如MySQL数据访问的话,相应的功能是单独放到一个模块的,用的时候再编译就可以。

下载完成了后,找个目录解压,一般为个人开发环境的三方库常用路径。任何路径都可以,按自己平常的习惯。接下来我们打开Foundation目录,这是整个POCO库的核心库,基本上其它所有模块都会使用该模块的核心基础功能,类似缓存,日期,事件,通知,进程管理,多线程等都是放在这个模块的,可以自己看看目录,多研究研究就能明白整个POCO库是如何组织的。

Foundation目录里面有各个版本的Visual Studio的解决方案文件,按自己的Visual Studio版本打开相应的SLN文件,我是2017版本,所以打开了Foundation_x64_vs150.sln。每个项目的构建目录有调试(DEBUG)和发布版本(RELEASE),相应的版本又分了静态编译和动态编译,静态编译在我们进行二次开发时,相应的POCO库会直接打包到我们的应用程序。如果是动态编译,则POCO库的各个模块将以相应的DLL出现。我们的应用程序打包的时候,需要将这些DLL一同打包。也可以提前安装到目标机器的System32目录中,这样只需要部署应用程序文件本身和相应的其它依赖文件。真正运行的时候才不会提示缺少DLL错误。具体怎么样部署视情况而定,如果多个应用程序都在一台机器,都相应的使用了POCO库,那POCO库就最好编译成DLL,并将DLL安装到系统目录,这样应用程序本身大小缩小。相应的DLL也不用随着每个应用程序目录存在,减少了文件的重复存在在磁盘上。

我在这选择debug_shared,x64,如果需要x86的,打开Foundation_vs150.sln就可以。这里选择debug_shared的原因是开发初期我们经常调试,另外可以学习POCO的源代码,如果选择了release_shared那调试到POCO库的代码层时,看不到源代码的,也调试不了,因为release不保存调试信息。应用程序发布的时候,再编译release版本的就可以了。

然后在Foundation项目上右键,点击Build(第一个命令)。

POCO编译

耐心待编译完成,快慢视机器配置情况而定。

使用POCO库

主要有两部分,第一部分其实可选,我写在这是提供一个比较方便的办法,为了以后方便切换版本,不用动Visual Studio配置的方法。目前最新的POCO库是1.9.0,2018年3月7号发布的。

将POCO库设置进环境变量

1、打开控制面板,找到系统然后打开,然后在左边找到高级系统设置,再点到高级选项卡,下面有个环境变量,点开,我们在用户变量这里设置环境变量,只对当前登录用户生效。如果需要系统级别生效,则在系统变量处设置即可。

2、在用户变量下面点击新建,在变量名处输入:POCO_BASE,在变量值处输入:POCO库的解压后的顶级目录,例如:C:\Users\Leo\Downloads\poco-1.9.0-all。

确定。假如想切换POCO库的版本,只需要修改此处的路径即可。

在Visual Studio中引用POCO库

1、使用Visual Studio新建一个项目

POCO2

输入项目名称,点击OK完成项目创建。

2、设置头文件引用路径和库链接路径

在解决方案窗口,项目名称右键,点击最下面的属性,弹出项目属性面板。

POCO3

点击C/C++下面的General,在附加头文件目录中输入%POCO_BASE%\Foundation\include,点击Apply。

接下来设置库引用路径

POCO4

点击Linker下面的General,在附加库目录中添加%POCO_BASE%\lib64,点击Apply

接下来添加需要引用的库

POCO5

点击Linker下面的Input,点击右边红色箭头的向下箭头,打开引用库的编辑界面

POCO6

输入PocoFoundationd.lib,这里的d表示链接调试版本的库。在发布的时候,我们的Release配置里输入PocoFoundation.lib,不带D的版本。目前都是基于Debug的配置。点击OK完成配置。

测试POCO库

打开包含int main()的源代码文件,将代码替换成:

#include “Poco/ByteOrder.h” // POCO库字节序头文件

#include <iostream>

using Poco::ByteOrder;// POCO库命令空间引用

using Poco::UInt16;
int main(){

#ifdef POCO_ARCH_LITTLE_ENDIAN

std::cout << “little endian” << std::endl;

#else

std::cout << “big endian” << std::endl;

#endif

UInt16 port = 80;

UInt16 networkPort = ByteOrder::toNetwork(port);

return 0;

}

 

编译,光标定位到return 0;这一行,按F9设置断点,按F5开始调试,在断点触发的时候,查看控制台输出:

POCO7

如果提示缺少DLL,就是需要将刚刚编译的DLL复制到本测试程序exe目录即可。

我要打赏,谢谢支持!

Advertisements

Windows下设置基于POCO库的C++开发环境”的一个响应

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s