操作系統(tǒng):Windows10
編譯環(huán)境:MSVC2017(64bit)
開發(fā)環(huán)境:QT 5.10.0
百度OCR快速入門步驟:
參考:https://ai.baidu.com/ai-doc/OCR/Kk3h7y7vq
1.在官方網(wǎng)站下載C++ SDK壓縮包。
2.將下載的aip-cpp-sdk-version.zip解壓, 其中文件為包含實(shí)現(xiàn)代碼的頭文件。
3.安裝依賴庫libcurl(需要支持https) openssl jsoncpp(>1.6.2版本,0.x版本將不被支持)。
4.編譯工程時(shí)添加 C++11 支持 (gcc/clang 添加編譯參數(shù) -std=c++11), 添加第三方庫鏈接參數(shù) lcurl, lcrypto, ljsoncpp。
5.在源碼中include ocr.h ,引入壓縮包中的頭文件以使用aip命名空間下的類和方法。
一、安裝libcurl
參考博客:https://blog.csdn.net/cym1990/article/details/79851039
1、下載壓縮包,我的是curl-7.68.0.zip
2、進(jìn)入到下載的源碼文件夾中,雙擊buildconf.bat文件運(yùn)行
3、進(jìn)入curl-7.68.0文件夾中的“winbuild”文件夾,并復(fù)制其路徑
4、打開開始菜單,找到vs2017,編譯64位,選擇"適用于 VS 2017 的 x64 本機(jī)工具命令提示",編譯32位,選擇"適用于 VS 2017 的 x86 本機(jī)工具命令提示",這里使用64位為例, 右鍵以管理員身份運(yùn)行,進(jìn)入到命令行中,輸入命令進(jìn)入到此目錄
cd /d D:\curl-7.68.0\winbuild
5、輸入指令
nmake /f Makefile.vc mode=dll VC=15 MACHINE=x64 DEBUG=no
(1)如果要靜態(tài)編譯,將mode=dll改為mode=static(之后要用qt動(dòng)態(tài)鏈接庫)
(2)VC=后面的數(shù)字對(duì)應(yīng)VS的版本,VC15對(duì)應(yīng)VS2017(更多對(duì)應(yīng)關(guān)系)
(3)如果需要debug版,將DEBUG=no”改為“DEBUG=yes
6、輸入上面命令之后,回車,等待編譯完成,
打開curl源碼文件夾中的“builds”文件夾,將名字最短的文件夾備份(如果x64和x86都編譯了,則需要備份兩個(gè)名字最短的文件夾),curl文件夾如果無其他需要?jiǎng)t可全部刪除。這個(gè)庫文件就是我們最終要調(diào)用的文件。編譯完成。
二、Qt配置libcurl
1、在.pro文件中添加對(duì)應(yīng)文件:
INCLUDEPATH += D:\libcurl-vc15-x64-release-dll-ipv6-sspi-winssl\include
LIBS += D:\libcurl-vc15-x64-release-dll-ipv6-sspi-winssl\lib\libcurl.lib
2、測(cè)試代碼
#include <curl/curl.h>
int main(int argc, char* argv[]) {
CURL *curl = nullptr;
CURLcode res;
curl = curl_easy_init();
if (curl != nullptr) {
curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
3、構(gòu)建文件后,添加dll文件到生成的文件對(duì)應(yīng)release里面(dll文件在編譯成功的文件下的bin中)