怎么在mingw环境下编译安装poco库

怎么在mingw环境下编译安装poco库,第1张

.vs编译安装的话,直接运行那些bat脚本就可以了,但MinGW肯定不行,所以需要用到MSYS

2.解压poco-1.4.6p2,比如:D:/mysdk/poco-1.4.6p2,在MSYS的命令行中输入“cd

/d/mysdk/poco-1.4.6p2”回车,就到了poco-1.4.6p2的解压目录了,具体你解压的目录路径可以根据实际情况修改;

3.configure poco-1.4.6p2

linux里面要配置编译参数,我们可以通过“./configure

--help”查看有哪些编译项。我们要使用MinGW编译poco就必须在configure时指明是MinGW,我的configure命令如下(大家根据自己的实际情况修改):

./configure --config=MinGW --shared --static --no-test --no-samples

--omit=Crypto,NetSSL_OpenSSL,Data/ODBC,Data/MySQL

简单解释:--config=MinGW表示我采用MinGW编译poco,--shared

--static表示编译生成动态库(dll)和静态库(a),omit=...表示编译时不生成这些库,因为我本机没装ssl、mysql,odbc需要lib,会影响我编译,所以我去掉了这4个库;

4.修改MinGW的编译脚本

修改poco-1.4.6p2/bulid/config/MinGW,把“SYSLIBS = -L/usr/local/lib -L/usr/lib

-liphlpapi -lws2_32 -lssl -lcrypto -lws2_32 -lgdi32”里去掉“-lssl

-lcrypto”,因为我本机没装ssl,这个库没有,会影响编译安装;

5.make编译

执行了上面的./configure

--config=......的命令后会生成一个config.make文件,然后输入“make”并回车,就开始编译安装poco了,poco编译过程会有一些提示错误,例如“poco-1.4.6p2/.../xxx.exe.exe:No

such file”,如果是的话就不用管他,继续输入make回车,他会继续往下编译,大概经过N次这样的 *** 作后,提示“make[1]:Nothing to be

done for 'all'.”的时候就编译完了。

编译完成后,在poco-1.4.6p2/lib/MinGW/ia32/目录下就是编译出来的静态度和动态库了。

Poco C++库是:

一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa

侧重于互联网时代的网络应用程序

使用高效的,现代的标准ANSI/ISO C++,并基于STL

高可移值性,并可在多个平台下可用

开源,并使用Boost Software License发布

不管是否商用,都完全免费

Poco库概览

特性:

DynamicAny与Any类

Cache框架

基于OpenSSL的密码系统

日期,时间类库

事件和通知框架

FTP客户端

跨平台的文件系统类库

HTML表单类库

HTTP客户端和服务端(支持SSL),C++ 服务器页面编译器

日志框架

多线程框架(线程池,活动对象,工作队列等)

POP3客户端类库

跨平台,一次编写,多平台编译和运行

进程管理和进程间通信类库

反射框架

基于PCRE的正则表达式

SMTP客户端类库

数据库访问类库(SQLite,MySQL, ODBC)

支持SSL/TLS,基于OpenSSL

动态类库加载

先进的内存和指针管理(Buffer, Pool)

Socket类库

网络数据流类库,支持Base64,HexBinary编解码,压缩等等

字符串格式化和其它字符串工具类库

TCP服务器框架(多线程)

文本编码和转换

Tuples

URI支持

支持UTF8和Unicode编码

UUID生成器

XML生成和解析器

Zip文件 *** 作类库

Poco的使命

Poco是一个强大的类库,并易于构建自己的应用程序

Poco帮助你创建跨平台的应用程序(一次编写,多平台编译和运行)

模块化和可扩展,可应用于嵌入式到企业级程序

提供全面,易懂的编程接口

使用C++语言,快速且高效

Poco崇尚简易

在设计,代码风格和文档上保持一致

Poco强调代码质量,包括可读性,综合性,一致性,编码风格和可测试性

Poco使得C++编程更加容易

指导方针

高度关注代码质量,编码风格,一致性,可读性

高度关注测试

注重实用性

基于现有的,可靠的组件开发

版本历史

Summer 2004: Günter Obiltschnig started development

February 2005: First release on SourceForge

(Release 0.91 under Sleepycat license)

May 2005: First contributions by Aleksandar Fabijanic

January 2006: Release 1.0

March 2006: Release 1.1

July 2006: Moved to Boost license, POCO Community Website

August 2006: Release 1.2

May 2007: Release 1.3

July 2010: Stable Release 1.3.7,

about 20 contributors, used in 100s of projects

支持平台

Microsoft Windows

Linux

Mac OS X

HP-UX, Solaris, AIX*

Embedded Linux (uClibc, glibc)

iOS

Windows Embedded CE

QNX

Poco应用场景

创建自动化的中间件和设备

工业自动化和工业设备

流量控制系统

健康系统

测量,数据收集和测试系统

消费电子产品和家庭自动化产品

测量

航空交通管理系统

VoIP

票务和入口控制系统

包装应用程序

Poco的优势

全面的,完整的C++框架,可减少开发工作,快速让产品走向市场

易学易使用,以及相当多的示例代码和良好的文档

原生的C++代码,性能优秀,低内存占用

平台无关,一处编写,跨平台编译和运行

大多数情况下,可以开发机上完成开发和调试工作

可以非常容易的迁移到新平台

编译

下面简单介绍一下方法,以 vs2010 为例。

第一种方法:

(1) Poco 根目录下有build_vs100.cmd和buildwin.cmd这两个批处理文件, 我们得修改一下它们。

把build_vs100.cmd 修改为以下内容:

@echo off

if defined VS100COMNTOOLS (

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vsvars64.bat")

buildwin 100 build all both x64 samples

红色的部分是vsvars64.bat的路径,具体要看本机的安装位置。这里因为是要编译X64,所以要修改环境。

蓝色部分是执行编译时候的参数(注意X64的X要小写)。参数的具体说明为:

buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL]

VS_VERSION:71|80|90|100|110

ACTION:build|rebuild|clean

LINKMODE: static_mt|static_md|shared|all

CONFIGURATION: release|debug|both

PLATFORM: Win32|x64|WinCE

SAMPLES: samples|nosamples

TESTS: tests|notests

TOOL: devenv|vcexpress|msbuild

具体的参数选择根据需求。

如果不需要 NetSSL_OpenSSL 和 MySQL ,此时保存后就双击它就行了。 它会自动编译好各种库。

如果要NetSSL_OpenSSL 这个库则打开buildwin.cmd文件:

设置 openssl 的路径,如:

set OPENSSL_DIR=c:\OpenSSL-Win64

set OPENSSL_INCLUDE=%OPENSSL_DIR%\include

set OPENSSL_LIB=%OPENSSL_DIR%\lib%OPENSSL_DIR%\lib\VC

set INCLUDE=%INCLUDE%%OPENSSL_INCLUDE%

set LIB=%LIB%%OPENSSL_LIB%

注意,如果要 Poco 中的 MySQL 库 还得安装. Mysql

编辑好后,双击 build_vs100.cmd执行编译。完成后会在Poco根目录下的lib64中看到编译好的库。在bin64中有编译好的dll。

第二种方法(适合熟悉命令行的用户):

按需求修改完buildwin.cmd文件后,使用vs2010的Tools中“Visual Studio x64 Win64 命令提示(2010)”命令,进入命令行状态。转到Poco所在的根目录,直接输入命令:

buildwin 100 build all both x64 samples

最后需要注意的地方:

上述方法完成编译后,关于Data的MySQL、ODBC、SQLite三个库没有生成(原因不详),需要单独编译,在此以MySQL为例记录一下编译过程。在\Data\MySQL文件夹下,找到MySQL_vs100.sln文件,打开。

打开的工程是win32的,需要改为X64。在C++包含目录中添加本项目的include文件夹,例如:“C:\poco-1.5.1-all\Data\MySQL\include”,还要添加安装的MySQL的include文件夹,例如“C:\Program Files\MySQL\MySQL Server 5.6\include”,在库目录中添加所需库的路径,例如“C:\Program Files\MySQL\MySQL Server 5.6\lib”。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6140389.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-16
下一篇2023-03-16

发表评论

登录后才能评论

评论列表(0条)

    保存