./configure --no-tests --no-samples --config=Linux --omit=Data --shared --static
sudo make install

–omit表示排除项目,Data中的SQlite,MySQL,ODBC等排除掉,这里不编译
如果要指定安装目录需要加参数 --prefix,这里是默认目录安装到

/usr/local/lib
/usr/local/include

以http为例说明如何使用

CMakeLists.txt文件配置

cmake_minimum_required(VERSION 3.5)
project(example LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# set the POCO paths and libs
set(POCO_PREFIX "/usr/local") # the directory containing "include" and "lib"
set(POCO_INCLUDE_DIR"${POCO_PREFIX}/include")
set(POCO_LIB_DIR "${POCO_PREFIX}/lib")
set(POCO_LIBS
        "${POCO_LIB_DIR}/libPocoNet.so"
        "${POCO_LIB_DIR}/libPocoUtil.so"
        "${POCO_LIB_DIR}/libPocoFoundation.so"
        "${POCO_LIB_DIR}/libPocoNetSSL.so")
include_directories(
    ${POCO_INCLUDE_DIR})
add_executable(example
  main.cpp
target_link_libraries(example "${POCO_LIBS}")
#include <iostream>
#include <Poco/Net/HTTPClientSession.h>
#include <Poco/URI.h>
#include <Poco/Net/HTTPCredentials.h>
#include <Poco/StreamCopier.h>
#include <Poco/Net/HTMLForm.h>
#include <Poco/BinaryReader.h>
#include <Poco/StreamConverter.h>
#include <Poco/Net/HTTPBasicCredentials.h>
#include <string>
#include <streambuf>
#include <Poco/Net/FilePartSource.h>
#include <Poco/Net/HTTPRequest.h>
#include <Poco/Net/HTTPResponse.h>
#include <Poco/Net/NetException.h>
//#include <Poco/Net/HTTPSClientSession.h>
int main(int argc, char *argv[])
            Poco::URI    url("https://docs.pocoproject.org/current/");
            Poco::Net::HTTPClientSession session(url.getHost(),url.getPort());
            Poco::Net::HTTPRequest req(Poco::Net::HTTPRequest::HTTP_GET,url.getPathAndQuery());
            session.sendRequest(req);
            Poco::Net::HTTPResponse res;
            std::istream & rs = session.receiveResponse(res);
            Poco::Net::HTTPResponse::HTTPStatus status = res.getStatus();
            std::string result;
            Poco::StreamCopier::copyToString(rs, result);
            if (Poco::Net::HTTPResponse::HTTPStatus::HTTP_OK == status)
                std::cout << "status HTTP_OK:"<<status<<std::endl;
                Poco::StreamCopier::copyToString(rs, result);
                std::cout << "status error:"<<status<<std::endl;
            std::cout << "getReason:"<<res.getReason() <<result<<std::endl;
            std::cout << "result:"<<result<<std::endl;
        catch(Poco::Exception & ex)
            std::cerr <<"exception error:"<< ex.displayText() << std::endl;

当成功的时候,result存储的返回网页的内容,其中getReason的内容已经包括result的内容。
以上是PC版本Poco库的编译和使用

POCO交叉编译配置

在这里插入图片描述
更改文件CMakeCache.txt

路径 poco-master/mybuild/CMakeCache.txt

CMAKE_CXX_FLAGS:STRING=  -pthread -ldl  -lrt

文档中说SyslogChannel只应用于unix系统,防止在嵌入式系统中出现问题,
这里在config.h定义
路径 poco-master/Foundation/include/Poco/config.h

#define POCO_NO_SYSLOGCHANNEL

静态库的编译与使用

静态库的编译
配置中不要勾选BUILD_SHARED_LIBS
在这里插入图片描述

静态库的使用
静态库有依赖顺序,可以根据编译Poco库时各个模块编译的顺序调整
编译Poco库时各个模块编译顺序如下

[ 33%] Built target Foundation
[ 38%] Built target Encodings
[ 51%] Built target XML
[ 53%] Built target JSON
[ 58%] Built target Util
[ 77%] Built target Net
[ 81%] Built target MongoDB
[ 83%] Built target Redis
[ 90%] Built target Data
[ 92%] Built target DataSQLite
[ 92%] Built target ActiveRecord
[ 93%] Built target ActiveRecordCompiler
[ 98%] Built target Zip
[ 99%] Built target PageCompiler
[100%] Built target File2Page

库的依赖可以使用如下顺序

set(POCO_LIBS
    ${CMAKE_SOURCE_DIR}/poco/lib/libPocoZip.a
    ${CMAKE_SOURCE_DIR}/poco/lib/libPocoDataSQLite.a
    ${CMAKE_SOURCE_DIR}/poco/lib/libPocoData.a
    ${CMAKE_SOURCE_DIR}/poco/lib/libPocoNet.a 
    ${CMAKE_SOURCE_DIR}/poco/lib/libPocoJSON.a
    ${CMAKE_SOURCE_DIR}/poco/lib/libPocoXML.a
    ${CMAKE_SOURCE_DIR}/poco/lib/libPocoUtil.a
    ${CMAKE_SOURCE_DIR}/poco/lib/libPocoEncodings.a
    ${CMAKE_SOURCE_DIR}/poco/lib/libPocoFoundation.a

交叉编译 - 加入OpenSSL的编译方式

Poco库配置与上述相同

以poco-1.12.2-all 和openssl-1.1.1q为例
首先要编译OpenSSL,将openssl-1.1.1q更改名字为openssl放置poco-1.12.2-all目录中,然后开始交叉编译,
OpenSSL的交叉编译参考
编译完成后配置
CMAKE_MODULE_PATH 设置为 /your_poco_path/poco-1.12.2-all/cmake/V33
在这里插入图片描述

勾选库的配置结果
在这里插入图片描述
库的依赖可以使用如下顺序

${CMAKE_SOURCE_DIR}/poco/lib/libPocoZip.a
${CMAKE_SOURCE_DIR}/poco/lib/libPocoDataSQLite.a
${CMAKE_SOURCE_DIR}/poco/lib/libPocoData.a
${CMAKE_SOURCE_DIR}/poco/lib/libPocoCrypto.a
${CMAKE_SOURCE_DIR}/poco/lib/libPocoNetSSL.a
${CMAKE_SOURCE_DIR}/poco/lib/libPocoNet.a 
${CMAKE_SOURCE_DIR}/poco/lib/libPocoJSON.a
${CMAKE_SOURCE_DIR}/poco/lib/libPocoXML.a
${CMAKE_SOURCE_DIR}/poco/lib/libPocoUtil.a
${CMAKE_SOURCE_DIR}/poco/lib/libPocoEncodings.a
${CMAKE_SOURCE_DIR}/poco/lib/libPocoFoundation.a
                    C++ Poco库的编译和使用flyfish文章目录C++ Poco库的编译和使用环境源码下载地址编译依次执行CMakeLists.txt文件配置代码实现POCO交叉编译配置环境Ubuntu18.04Qt 5.14.2源码下载地址https://github.com/pocoproject/poco编译依次执行./configure --no-tests --no-samples --config=Linux --omit=Data --shared --staticmakesudo
				
POCO C++ Libraies属于功能广泛、轻量级别的开源框架,它拥有媲美Boost的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。 POCO C++ Libraies由多个功能模块组成,其中包括网络、多线程、日志、命令行程序等。POCO官方拥有众多模块的使用示例,可以在短时间内上手并完成相关功能。 官方网址:POCO官方 官方文档:POCO文档 函数用法:POCO函数用法
什么是POCOPOCO是强大的的跨平台C++,可以用来编写多平台的网络应用程序,这些平台包括桌面端、服务端、移动端、IOT(物联网)、嵌入式系统等。总的来说是一个非常强大的综合性。 为什么使用Poco? 1.支持跨平台 2.性能表现优异 3.API使用方便,便于上手 4.可以拆分使用,容易实现轻量化调用 5.功能模块丰富 6.Poco C++是在Boost软件许可证下授权的,既可以用来开发非商业应用,也可以用来开发商业应用。可以说是可以自由使用的了。 POCO都能做哪些
Poco版本:1.8.0.1 POCO是强大的的跨平台C++,可以用来编写多平台的网络应用程序,这些平台包括桌面端、服务端、移动端、IOT(物联网)、嵌入式系统等。总的来说是一个非常强大的综合性Poco的官网地址:https://pocoproject.org/index.html Poco的项目地址:https://github.com/pocoproject/poco/tree/master
由于最近工作中项目的需求,项目需要实现Windows平台和Linux平台HTTP服务,最终选择QtCreator开发平台 + POCO来实现。所以就设计到POCO的下载,编译。 1. POCO的下载 https://pocoproject.org/download.html 可以通过上面的官方网址地址来下载,其中包含了最新的基础版本和完整版本(当前最新版本是1.10.1),我自己目前使用的是1.9.3版本,可以根据自己的需要自行选择下载 2. POCO编译 POCO编译具体查看P.
可以在solaris和linux上交叉编译。cygwin则可能有问题。也可以直接在qnx上编译。 qnx的编译配置默认在x86平台上,可以指定其他平台,编辑ccver设置编译配置文件。例如指定CCVER=3.3.1,gcc_ntoppcbe则编译在powerpc上。 qnx6.3必须要加sp1,否则失败 当在QNX编译是,要禁止NetSSL_OpenSSL, Crypto和数据连接。除非你
PyTorch - transforms.ColorJitter 改变图像的属性:亮度(brightness)、对比度(contrast)、饱和度(saturation)和色调(hue) 50814 weixin_45423572: 感谢大佬的思路,最近在使用qt-ros2的人机交互的开发,用qt的QProcess类可以正确的运行ros2的launch指令,但是没有办法退出,看到您的文章,感觉有用,能否希望更详细的说明一下 用Qt process的方式运行ros2的程序以后 如何退出相应的launch程序 MakeItTalk用一段语音让一张照片动起来 Wing以一: 如果你在23年6月后安装,指定face_alignment==1.3版本可以正常运行 1.4版本face_alignment.LandmarksType._2D改为了LandmarksType.TWO_D,修改名称即可 目标检测 YOLOv5 - v6.2版本模型在瑞芯微 Rockchip设备从训练到C++部署实践 做只快乐的猪呀: 博主,好像有官方的6.2训练不行,会有层不支持,还是因为我哪里没有设置的问题,我按照步骤来。提示E Try match layer: Shape_Shape_218:out0 failed! The OP of this layer may not yet support, please check document <RKNN_OP_Support.md>! E Catch exception when loading onnx model: /home/rv1126/ToolKit/rockchip_rknn_yolov5-main/bin/best.onnx! E Traceback (most recent call last): 目标检测 YOLOv5 - 数据增强 Li_qwert: 很棒,可以单独查看增强效果 目标检测 YOLOv5 - YOLOv5的后处理 Painting时光: 第二次筛选 只留下 (obj_conf * cls_conf) > conf_thres 的数据 还用筛选第二次吗?