从零开始编译Poco C++和VS2015环境配置
Poco C++是一个C++的开源框架,详细介绍可以问百度介绍更详细,这里我就记录下我从零编译poco-1.9.0和配置 VS2015的环境,以备不时之需。
步骤:
一、安装cmake;
二、编译poco-1.9.0;
三、将编译后的poco-1.9.0配置到VS2015的项目中;
四、示例简单示例。
安装cmake
我的电脑环境:
win7 64位;
cmake-3.12.1-win64-x64(官网下载:点击我下载cmake)。
安装cmake按常规安装即可,但是记得勾选:
这个主要是为了防止电脑登录其他用户没有cmake,建议把CMake加到系统PATH中。其他的下一步即可。
关于cmka GUI和命令行的用法(下面会配置PocoC++使用命令行用法),也可以自行百度。
编译Poco C++
前提条件:
1)Poco C++源码(官网下载:点击我下载);
2)已经安装VS2015;
3)已经安装cmake。
编译poco c++(poco-1.9.0.zip、Visual Studio 2015)
1)用windows的命令行转到poco-1.9.0文件夹,即源码目录。
2)执行下面命令(命令最后一句的”..”切记不可遗漏了哦):
mkdir cmake_build_x64
cd cmake_build_x64
cmake -G “Visual Studio 14 2015 Win64” ..
3)然后进入make_build_x64 文件夹里面,用 Visual Studio 2015 打开 Poco.sln,用VS编译 POCO C++ Libraries 的动态链接库 ,建议同时编译debug和release版本(跟普通的编译VS工程一样,即按快捷键F7即可),至此PocoC++编译完成了,在目录cmake_build_x64文件夹下面的的 bin、lib 子目录中,就是我们最终得到的动态链接库等文件。
poco-1.9.0配置到VS2015的项目中
1)在源码目录下新建v1.9.0_compact_MSVC文件夹,如我的:
D:\poco\poco-1.9.0\v1.9.0_compact_MSVC
然后设置系统环境变量指向POCO_ROOT,即点击“”我的电脑“–》右击“属性”–》高级系统设置–》环境变量–》点击系统环境变量下面的“新建”按钮,填写:
2)将所有的 include下面文件夹集中在 %POCO_ROOT%\include 目录中,如我的D:\poco\poco-1.9.0\Foundation\include\Poco文件下面的东西拷贝D:\poco\poco-1.9.0\v1.9.0_compact_MSVC\include\Poco下面。同理D:\poco\poco-1.9.0\Encodings\include\Poco同样处理(你会留意到有Encodings Foundation JSON Net Util XML这些文件夹下面\include\Poco下面的文件及文件夹需要这样处理)。这样做主要是为包含头文件方便些,最终处理完如下图所示:
3)在v1.9.0_compact_MSVC文件夹下面建立build/x64文件夹,将编译得到的 bin、lib 文件夹都收集到build/x64下,如下图:
4)在VS工程连接动态库和头文件:
a.右击你的VS工程,点击“属性”–》C/C++–》常规–》添加包含目录,输入:
$(POCO_ROOT)\include
b.点击“属性”–》连接器–》附加库目录,输入:
D:\poco\poco-1.9.0\v1.9.0_compact_MSVC\build\x64\lib\Debug
D:\poco\poco-1.9.0\v1.9.0_compact_MSVC\build\x64\bin\Debug
c.点击“属性”–》连接器–》输入–》附加依赖项。
针对Debug,输入:
PocoEncodingsd.lib
PocoFoundationd.lib
PocoJSONd.lib
PocoNetd.lib
PocoUtild.lib
针对Release输入:
PocoEncodings.lib
PocoFoundation.lib
PocoJSON.lib
PocoNet.lib
PocoUtil.lib
PocoXML.lib
4)将对应库配置到编译输出目录。“属性”–》生成事件–》命名行,输入:
copy “(POCOROOT)\build$(Platform)\bin$(Configuration)\*.∗"(POCOROOT)\build$(Platform)\bin$(Configuration)\*.∗"(TargetDir)
pooc c++使用简单示例代码:
#include <iostream>
#include "Poco\Timer.h"
#include "Poco\Thread.h"
using Poco::Timer;
using Poco::Thread;
using Poco::TimerCallback;
using namespace std;
class TimerExample
{
public:
void onTimer(Poco::Timer &timer)
{
cout << "func : " << __FUNCTION__ << endl;
}
};
int main(int argc, char** argv)
{
TimerExample te;
Timer timer(2000, 1000);
timer.start(TimerCallback<TimerExample>(te, &TimerExample::onTimer));
Thread::sleep(5000);
timer.stop();
return 0;
}
已上是我今天编译poco c++、配置VS2015工程环境、简单使用的总结笔记,如有不当之处,还请大侠多多指教哦~
from:https://blog.csdn.net/u013421892/article/details/82467086
从零开始编译Poco C++和VS2015环境配置的更多相关文章
- OpenCV3.2 + VS2015环境配置
一.准备工作: (1) 到OpenCV的官网(http://opencv.org/)下载OpenCV3.2 (2) 安装好VS2015. (3) 计算机系统:Win7(Win8, Win1 ...
- cocos IDE 编译lua 游戏程序的环境配置
因为毕业设计需要用cocosIDE编译一个apk在手机上跑,所以搭建这个环境还是需要的. ps:是针对win系统的. 需要的工具: 1.cocosIDE:点击链接 (ps:据说这个软件设计有点反人类, ...
- vscode 编译调试c/c++的环境配置
首先看了一下别人写的文章 http://blog.csdn.net/c_duoduo/article/details/51615381 在按照上文链接博主的安装步骤进行到MINGW的安装时出现一个问题 ...
- 从零开始学Java (一)环境配置
1.下载jdk Oracle官网 2.配置环境变量 JAVA_HOME:指明JDK安装路径,如C:\Program Files\Java\jdk1.7.0Path:变量中添加 %JAVA_HOME%\ ...
- VS2015环境配置: VS2015 未能正确加载“ResourceManagerPackage”包的问题
启动vs2015专业版时,出现类似于这样的提示框,有好几个,点击是或否,但下次打开还是会出现.笔者也寻找了网上的一些解决办法,例如用vs命令窗口或其他,但都无疾而终,下面提供的这个办法,顺利解决此问题 ...
- NetFPGA-1G-CML从零开始环境配置
NetFPGA-1G-CML从零开始环境配置 前言 偶得一块NetFPGA-1G-CML,跟着github对NetFPGA-1G-CML的入门指南,一步步把配置环境终于搭建起来,下面重新复现一下此过程 ...
- VS2015调用Matlab2017a环境配置(转载)
VS2015调用Matlab2017a环境配置 一定要在Debug+x64平台下进行配置,x64,x64,x64!!!* 1.配置环境变量 右键计算机—–>属性——>高级系统设置——> ...
- QT5.8.0+MSVC2015安装以及环境配置(不需要安装VS2015)
原文:QT5.8.0+MSVC2015安装以及环境配置(不需要安装VS2015) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/snow_rain_ ...
- 踏入OpenGL大门 —— VS2015开发环境配置 (详细图文)
转自: https://www.jianshu.com/p/68c314fa9fea?from=groupmessage 眼睛熊 ---------------- 本文 ------------- ...
随机推荐
- 《贝贝GO》技术支持
贝贝GO是一个采用R2M模式的电子商务平台,通过零售商到制造商的两点直线连接,去除中间所有分销代理环节,结合互联网打造全新的线下新零售,旨在为用户提供高品质.高性价比商品的同事带动零售业的新发展.提升 ...
- Sharepoint 2016 配置FBA(三)配置Sharepoint
编辑已经创建好的Web Applicaiton, SharePoint Central Administration -> Application Management -> Manage ...
- 入门项目 A6 lib common 登陆状态装饰
# 用户认证装饰器 def auth(func): from core import src def inner(*args, **kwargs): # 调用被装饰函数前需要做的操作 if src.u ...
- mysql navcate longblob 查询结果导出倒入
由于之前项目为了查询方便,且不受权限控制.所以把image储存在了数据库.但是也遇到了很多瓶颈问题. 1,丢图从日志上查询获知,丢图95%以上是由于mysql的timeout时间失效引起的.(由于另一 ...
- C语言中的一维数组
一.一维数组的定义和引用 (1)一维数组的定义 类型说明符表示数组中的元素类型 数组标识符该数组型变量的名称,命名规则与变量名一致 常量表达式定义了数组中存放的数据元素的个数. (2)一维数组的引用 ...
- zoj 2524 并查集裸
Description There are so many different religions in the world today that it is difficult to keep tr ...
- bzoj 4589 FWT
#include<bits/stdc++.h> #define ll long long using namespace std; ; ; ; ; <<],b[<< ...
- poj 1113 凸包
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...
- C++动态链接库方法调用
//定义内存的信息结构 [StructLayout(LayoutKind.Sequential)] public struct MEMORY_INFO { public uint dwLength; ...
- bootstrap-daterangepicker双日历控件开始日期选择问题
在做项目的时候,有这样一个需求,需要选择时间段,于是在网上找了bootstrap的双日历时间控件daterangepicker控件,要选取时间段的年月来与后台进行数据交互,时间控件如下图所示: 关于控 ...