網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
C++ Poco庫(kù)的編譯和使用
flyfish
文章目錄
- C++ Poco庫(kù)的編譯和使用
- 環(huán)境
- 源碼下載地址
- 編譯依次執(zhí)行
- CMakeLists.txt文件配置
- 代碼實(shí)現(xiàn)
- POCO交叉編譯配置
環(huán)境
Ubuntu18.04
Qt 5.14.2
源碼下載地址
https://github.com/pocoproject/poco
編譯依次執(zhí)行
./configure --no-tests --no-samples --config=Linux --omit=Data --shared --static
make
sudo make install
–omit表示排除項(xiàng)目,Data中的SQlite,MySQL,ODBC等排除掉,這里不編譯
如果要指定安裝目錄需要加參數(shù) --prefix
,這里是默認(rèn)目錄安裝到
/usr/local/lib
/usr/local/include
以http為例說(shuō)明如何使用
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")
add_executable(example
main.cpp
)
target_link_libraries(example "${POCO_LIBS}")
代碼實(shí)現(xiàn)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
try
{
Poco::URI url("https://docs.pocoproject.org/current/");
Poco::Net::HTTPSClientSession 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:"<
當(dāng)成功的時(shí)候,result存儲(chǔ)的返回網(wǎng)頁(yè)的內(nèi)容,其中g(shù)etReason的內(nèi)容已經(jīng)包括result的內(nèi)容。
以上是PC版本Poco庫(kù)的編譯和使用
POCO交叉編譯配置
CMAKE_CXX_FLAGS:STRING= -pthread -ldl -lrt
文檔中說(shuō)SyslogChannel只應(yīng)用于unix系統(tǒng),防止在嵌入式系統(tǒng)中出現(xiàn)問(wèn)題,
這里在config.h定義
#define POCO_NO_SYSLOGCHANNEL
原文鏈接:https://blog.csdn.net/flyfish1986/article/details/124673651
相關(guān)推薦
- 2024-02-29 UNI-APP在自定義組件中內(nèi)嵌H5/Html網(wǎng)頁(yè),可自定義webview大小,加載不閃屏
- 2022-10-17 Python實(shí)現(xiàn)在一行中交換兩個(gè)變量_python
- 2022-11-27 Python?OpenCV實(shí)現(xiàn)圖像增強(qiáng)操作詳解_python
- 2022-03-22 C++類的定義與實(shí)現(xiàn)_C 語(yǔ)言
- 2022-07-16 ssh遠(yuǎn)程連接docker
- 2024-03-21 【Spring Boot】Spring Boot 配置文件詳解(application.yml、ap
- 2022-07-14 C語(yǔ)言每日練習(xí)之統(tǒng)計(jì)文本單詞數(shù)及高頻詞_C 語(yǔ)言
- 2023-02-17 C++可執(zhí)行文件絕對(duì)路徑值與VS安全檢查詳解_C 語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支