天天看點

近期踩坑記錄:關于linux中Qt C++調用python

​​問題起因​​

​​關于Qt中編譯cuda生成的cu檔案​​

坑1:關于CUDA_ARCH

坑2:關于NVCC_OPTIONS

​​Qt中C++代碼調用python​​

pro檔案

PYTHONHOME和PYTHONPATH

其他

問題起因

實驗室項目分為兩部分,一部分是C++接口,負責通過socket收發封包,按協定解析封包,然後傳輸給後面的算法,算法來進行對資料進行處理(隻能說這麼多,再說估計就被叫去喝茶了),然後後期項目整合的時候,接口代碼需要和算法進行整合,但是算法部分明沒有在伺服器上做過測試,是以我在整合的時候需要了很多坑,經過一周的點燈熬夜,終于是完美解決,寫出來希望能幫到大家!!

關于Qt中編譯cuda生成的cu檔案

主要是配置Qt中的pro檔案,貼出我百度之後親測有效的配置

這裡不同的顯示卡是不一樣的,設定不對的話,編譯應該是通過不了的

查詢連結

這東西是會附加在下面的cuda.commands裡使用,類似于指令行編譯的時候用的指令,算法發現計算完的結果存在誤差,但是不知道在linux環境如何解決,百度之,通過,如果大家需要加入其他的參數,也是在這裡進行

參考連結

Qt中C++代碼調用python

伺服器上是通過anaconda3安裝的python,自帶版本是py3.7

還是先貼上我自己的配置再做說明

上面兩個頭檔案,大家根據自己的代碼去環境中找就行了,用 locate 或者幹脆直接搜尋都是可以的

最重要的是引用庫的時候,千萬别引用錯了,不然編譯的時候會報錯

我報的錯誤是

https://blog.csdn.net/jiguangfan/article/details/86488573

後來發現是自己把庫連結錯了(好多庫都是重名的,隻是路徑不同,是以就中招了)

編譯通過之後,運作時一直報錯環境變量未定義,參考了網上的很多辦法,還是沒有奏效,最後在代碼中算是動态指定了這兩個環境變量

前面兩個set一定要在第三行初始化之前進行

由于算法那邊開發的時候用的是windows+py3.5,但是實際的環境是linux+py3.7 應該是由于版本不同,導緻了一些運作時的問題用py從檔案中讀取資料,然後指定的資料類型出了問題 ​