編碼的世界 / 優質文選 / 財富

【Poco學習筆記】Poco庫win10下編譯(超詳細,小白都能看得懂)


2022年5月17日
-   

目錄前言
一、前期准備
1.1 安裝Openssl
1.2 下載Poco的源碼
二、編譯源碼
三、報錯
3.1 Foundation_vs160找不到Windows SDK版本8.1
3.1.1 報錯原因
3.1.2 解決方式
3.2 缺少openssl路徑
3.2.1 報錯原因
3.2.2 解決方法
3.3 找不到mysql.h
3.3.1 報錯原因
3.3.2 解決方法
四、編譯完成
總結
前言
上一篇文章,咱們介紹了Poco庫有多牛逼,當然接下來就是要把它用起來。工欲善其事必先利其器,想讓C++發揮更好的作用,就需要把一個合適的框架跟庫給用起來。
因為Poco官網有編譯好的win64的庫文件,Linux的32跟64位的庫,所以這裏我演示如何編譯出win32的庫文件
環境:win10
工具:VS2019
目標:編譯出win32的Poco庫
一、前期准備
1.1 安裝Openssl
要安裝openssl,不知道怎麼安裝的,可以參考我的文章
https://blog.csdn.net/zhh763984017/article/details/113486710
1.2 下載Poco的源碼
git clone https://github.com/pocoproject/poco.git

二、編譯源碼
打開VS2019,進入命令行


進入poco源代碼所在路徑,我的路徑是在F:C++_workhttppoco

修改buildwin.cmd文件,增加了幾行

增加的內容如下:
set OPENSSL_DIR=C:Program FilesOpenSSL-Win32
set OPENSSL_INCLUDE=C:Program Files (x86)OpenSSL-Win32include
set OPENSSL_LIB=C:Program Files (x86)OpenSSL-Win32lib;C:Program Files (x86)OpenSSL-Win32libVC;C:Program Files (x86)OpenSSL-Win32libVCstatic
set INCLUDE=%INCLUDE%;%OPENSSL_INCLUDE%
set LIB=%LIB%;%OPENSSL_LIB%

這裏的OPENSSL_DIR配置的路徑就是你openssl安裝的路徑 OPENSSL_INCLUDE是你openssl安裝的路徑下的include文件夾 OPENSSL_LIB是你openssl安裝的路徑下的lib文件夾
修改完,如下圖所示

在VS2019的命令行執行.uild_vs160.cmd

三、報錯
3.1 Foundation_vs160找不到Windows SDK版本8.1
3.1.1 報錯原因
執行上面腳本命令後,報錯說Foundation_vs160工程找不到相關的SDK。這是源代碼的SDK是win8.1平台的,而我的環境是win10,用的SDK是win10的SDK。

3.1.2 解決方式
1.進入源碼目錄

2.打開Foundation_vs160.sln,右鍵屬性,修改SDK版本,然後應用,這4個項目都要做同樣的修改。如下圖


配置完,關閉工程。記得保存

3.2 缺少openssl路徑
 
3.2.1 報錯原因
如果沒有按照我上面所說的,沒有配置openssl路徑,會報錯:無法打開包括文件“openssl/opensslv.h”: No such file or directory
報錯如圖所示

3.2.2 解決方法
修改buildwin.cmd文件,如我上述步驟,把openssl的頭文件路徑設置好。
3.3 找不到mysql.h
3.3.1 報錯原因
找不到mysql.h,報錯。如果有需要編譯mysql模塊的話,就需要電腦先安裝Mysql數據庫,並且配置相關路徑。後面我會單獨出一期來講解這個模塊的編譯

3.3.2 解決方法
目前由於我們不需要用到mysql模塊,我們可以不編譯該模塊
我們在poco源代碼目錄下找到“components”文件,然後修改,刪掉其中不需要用到的模塊。比如我這裏的用不到ODBC、MYSQL、PostgreSQL的庫,就可以先行刪除,然後再次編譯


四、編譯完成
解決上述問題之後,再次運行.uild_vs160.cmd就可以正常編譯咯~

總結
打完收工,以上就是Poco win32庫的編譯過程,是不是很簡單叻,接下來,會介紹如何新建一個Poco庫的VS2019工程。有了Poco庫,媽媽再也不用擔心我用C++用得頭禿了。

熱門文章