C++調(diào)用matplotlib繪圖總結(jié)-創(chuàng)新互聯(lián)

前言

最近在用C++做信號處理,因?yàn)樯婕暗骄仃嚁?shù)值計(jì)算且需要繪圖,便發(fā)現(xiàn)了C++可以調(diào)用python中的matplotlib進(jìn)行畫圖,但是整個(gè)配置過程可謂是異常艱辛,特地過來總結(jié)一下!

網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。創(chuàng)新互聯(lián)公司多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)公司,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。

文章略長,還請耐心看完。

主要參考:

C++matplotlibcpp配置、使用及發(fā)布(第三方無需安裝python即可運(yùn)行)_c++_djh_-DevPress官方社區(qū) (csdn.net)

進(jìn)入正題 1. matplotlibcpp安裝

下載地址:https://github.com/lava/matplotlib-cpp

下載的是一個(gè)文件夾,下載完先放在一邊備用,接下來重點(diǎn)說一下其他配置。

2. 環(huán)境配置 2.1 python環(huán)境配置

因?yàn)槭钦{(diào)用python中的matplotlib,所以首先需要配置python環(huán)境。我是從anaconda中下載的,因?yàn)樵诎l(fā)布時(shí)需要打包matplotlib-cpp所有第三方依賴庫,anaconda可以直接下載好。

anaconda中具體操作可以自行查找,此處不再贅述。

2.2 VS中配置

1)首先右鍵項(xiàng)目進(jìn)入屬性頁,配置選擇Release,平臺x64(一般都是)。

2)選擇C/C++,編輯附加包含目錄。將以下兩個(gè)路徑添加進(jìn)去:

C:\Users\ly123\.conda\envs\test12_12\Lib\site-packages\numpy\core\include

C:\Users\ly123\.conda\envs\test12_12\include

注:test12_12表示的是在anaconda創(chuàng)建的環(huán)境名稱(每個(gè)人不一樣),找不到路徑的可以去anaconda查看。

3)然后再選擇鏈接器,編輯附加庫目錄,添加C:\Users\ly123\.conda\envs\test12_12\libs。

4)再選擇鏈接器中的輸入,編輯附加依賴項(xiàng)。將C:\Users\ly123\.conda\envs\test12_12\libs中的三個(gè)文件名添加進(jìn)去。

5)關(guān)鍵一步來了,需要將如下三個(gè)dll文件復(fù)制到VS項(xiàng)目的exe目錄下:

python3.dll、python38.dll、vcruntime140.dll(存放路徑:C:\Users\ly123\.conda\envs\test12_12)
并且將文件夾platforms也復(fù)制到exe目錄下(存放路徑:C:\Users\ly123\.conda\envs\test12_12\Library\plugins\platforms)

6)VS中配置完后,還要將目錄C:\Users\ly123\.conda\envs\test12_12\Library\bin添加到環(huán)境變量:

2.3 matplotlibcpp使用

以上配置完成后,再將下載的matplotlibcpp文件夾中的matplotlibcpp.h頭文件拷貝到VS項(xiàng)目工程。

接下來為了使運(yùn)行時(shí)不報(bào)錯(cuò),還需要做如下處理:注釋掉matplotlibcpp.h頭文件中的第354和356行。

最后在C++源文件中添加兩行代碼:

#include "matplotlibcpp.h"
namespace plt = matplotlibcpp;

至此,全部配置完成。

然而,就在我以為終于大功告成結(jié)束痛苦時(shí),現(xiàn)實(shí)又給了我一記響亮的耳光,下面記錄一下遇到的問題以及解決方案。 1)提示matplotlibcpp.h中無法找到Python.h文件:

首先找到python.h文件,將其路徑添加到項(xiàng)目屬性頁VC++目錄中的包含目錄即可。

2)Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding

好不容易程序能運(yùn)行了,又報(bào)了這樣的錯(cuò)誤。主要是因?yàn)檎也坏綄?yīng)的環(huán)境變量,解決辦法如下:

在anaconda安裝目錄下,找到D:\anaconda\pkgs\qt-5.9.7-vc14h73c81de_0\Library\plugins

然后設(shè)置環(huán)境變量:

變量名為:QT_QPA_PLATFORM_PLUGIN_PATH;

路徑為:D:\anaconda\pkgs\qt-5.9.7-vc14h73c81de_0\Library\plugins。

解決了這兩個(gè)問題后,終于暫時(shí)脫離痛苦了,測試一下代碼:

plt::plot({1,2,3,4,5});
	plt::show();

OVER?。。?p>整個(gè)配置過程很麻煩,而且即便按照步驟配置可能也會遇到一些問題,所以還請多點(diǎn)耐心(bushi)!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前題目:C++調(diào)用matplotlib繪圖總結(jié)-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://muchs.cn/article18/djeegp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站云服務(wù)器、網(wǎng)站設(shè)計(jì)公司、商城網(wǎng)站網(wǎng)站建設(shè)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)