从零开始编译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 眼睛熊 ---------------- 本文 ------------- ...
随机推荐
- axis2设置soap1.1或soap1.2协议
现在Axis.Axis2都是同时支持SOAP1.1和SOAP1.2的.即在服务器端发布一个WebService服务之后,客户端既可以通过SOAP1.1版本来访问服务器的服务,也可以通过SOAP1.2版 ...
- <input > -- radio
radio 单选按钮的使用.(注意:两个radio的name属性是相同的,才能表现为互斥) </head> <body> <p>这是input标签的用法</p ...
- ES6参数默认值
参数默认值 1.首先,来看一下es5中的函数默认值 var a = a || 10; var b = b || "none" // 当a的值或者b的值为undefined时,根据逻 ...
- @RequestParam 和 @ PathVariable 的区别
@RequestParam 和 @ PathVariable 的区别http://localhost:8080/Springmvc/user/page.do?pageSize=3&pageNo ...
- 【转载】 “强化学习之父”萨顿:预测学习马上要火,AI将帮我们理解人类意识
原文地址: https://yq.aliyun.com/articles/400366 本文来自AI新媒体量子位(QbitAI) ------------------------------- ...
- Android Studio解决Error:moudle not specified
在使用Android Studio 进行Builder APKs的时候,如果发现无法degub, 进行配置的时候 没有module可以进行指定,如果所示(借个图) 问题的原因一般是Grade File ...
- SQL练习题-50道SQL练习题及答案与详细分析
网上流传较广的50道SQL训练,奋斗了不知道多久终于写完了.前18道题的难度依次递增,从19题开始的后半部分算是循环练习和额外function的附加练习,难度恢复到普通状态.第9题非常难,我反正没有写 ...
- 用递归方法求n阶勒让德多项式的值
/* Date: 07/03/19 15:40 Description: 用递归法求n阶勒让德多项式的值 { 1 n=0 Pn(x)= { x n=1 { ((2n-1) ...
- Flask开发遇到的问题:BuildError: Could not build url for endpoint 'main.followers' with values ['username']. Did you mean 'main.user' instead?
@(Flask Web Development 12th chapter) 描述 Flask开发中遇到BuildError: Could not build url for endpoint 'mai ...
- PTA——找鞍点
PTA 7-56 找鞍点 #include<stdio.h> #define N 6 int main() { ; scanf("%d",&n); int a[ ...