發表文章

目前顯示的是有「Visual Studio」標籤的文章

[C++, Visual Studio] 解決問題 : 應用程式無法正確啟動 (0xc000007b)。請按一下 [確定] 關閉應用程式。

這問題是幾個禮拜前發生且解決的問題,在此先做個筆記紀錄。 使用 Visual Studio 2015 編譯C++時跑出," 應用程式無法正確啟動 (0xc000007b)。請按一下 [確定] 關閉應用程式。 "。 解法 :  64位元 : 進入 C:\Windows\SysWOW64,網路上下載最新的 "vcruntime140.dll"以及"vccorlib140.dll"。 應該是這兩個沒錯,若有錯我會在補正。

[TensorFlow, C++, Visual Studio, Windows] TensorFlow C++ 於 Visual Studio 快速使用 DLL,LIB 流程

圖片
很久之前寫過一篇關於編譯TensorFlow C++ 的流程,如下: [TensorFlow, C++, Visual Studio, Windows] TensorFlow C++ 如何編譯與解決BUG (How to build Tensorflow C++ API with Visual Studio and solve BUG) [CMake, TensorFlow, C++, Python] 使用CMake去編譯TensorFlow所要知道的事情... 現在回過頭來看, 其實寫得很不詳細, 主要是寫出當時所處理的BUG以及處理方式。 最近在網路上找到一位善心人士, 將自己所編譯好的 TensorFlow C++ LIB和DLL 檔釋出, 這邊分享這位善心人士 fo40225 的github。 https://github.com/fo40225/tensorflow-windows-wheel 裡面目前只有兩個版本有C++的dll以及lib, r1.10.0 (CPU版本以及GPU版本)和r1.14.0(CPU版本) , 裡面有cpp資料夾, 請參閱所需之cuda和cudnn下載。 以r1.10.0為例,流程如下 : 此github下面有說明其兼容的cuda版本和cudnn版本,對照並下載對應版本。 到此網站針對需求,CPU或GPU去下載分散的壓縮檔。 https://github.com/fo40225/tensorflow-windows-wheel/tree/master/1.10.0/cpp 解壓縮完畢後有三個資料夾,bin、include、lib。 進入Visual Studio 創建空專案,並針對屬性頁新增 VC++目錄->include目錄->"include"資料夾位置 VC++目錄->程式庫目錄->"lib"資料夾位置 連結器->其他相依性->"tensorflow.lib; tensorflow_static.lib" 將bin/tensorflow.dll丟置空專案底下或是System32底下 確定cuda有輸入至環境變數

[Qt, Visual Studio, C++] Qt label 圖片自適應 Size

如果 Qt label 的大小與圖片大小不符合,怕會過大過小,要讓這些圖片可以適應 label 的大小,Code 如下 : ui.label->setPixmap(QPixmapLLfromImage(mat2Qimg(img)).scaled( ui.label->width(), ui.label->height(), Qt::ignoreAspectRatio, Qt::SmoothTransformation));

[Qt, Visual Studio, C++] Mat 轉 QPixmap

要將Mat格式的圖片顯示在 Qt UI 上的 label, 需進行轉換, Code 如下 : Qimage mat2Qimg(Mat& mat){ cv.cvtColor(mat, mat, COLOR_BGR2RGB); QImage Qimg((const unsigned char*) mat.data, mat.cols, mat.rows, mat.step, QImage::Format_RGB888); return Qimg;} Mat img = cv.imread("xxx.bmp",CV_LOAD_IMAGE_COLOR); ui.label->setPixmap(QPixmap::fromImage(mat2Qimg(img)));

[Qt, Visual Studio, C++] Qt 5.13.2 於 Visual Studio 2019 之建置流程

相關配置如下 , 有些雜亂, 有空在修正: Visual Studio 2019 (因專案需求已安裝MSVC2015) Qt 5.13.2 Qt VS Tools 2.4.2(rev.9) 簡易建置流程 : https://download.qt.io/archive/qt/  選擇需要的版本, 個人偏好最新版的前一版 下載完安裝到底, 記得要勾選 Core, Widgets, Gui https://download.qt.io/development_releases/vsaddin/2.4.2/  選擇安裝rev.9的版本, 因最新版有BUG, 詳情參閱 :  https://netoken27.blogspot.com/2019/12/c-mutex-is-not-supported-when-compiling.html 安裝完畢後, 將以下幾個dll丟到VS專案底下 : Qt5Core.dll Qt5Cored.dll Qt5Gui.dll Qt5Guid.dll Qt5Widgets.dll Qt5Widgetsd.dll 接著到Visual Studio進行設置 延伸模組 Qt VS Tools Qt Options Add D:\Qt\Qt5.13.2\5.13.2\msvc2015_64 最後新增專案 Qt GUI Application, 編譯看是否能顯示GUI PS. 我沒特別設置環境變數

[Qt, Visual Studio, C++] Visual Studio + Qt:GetVarsFromMakefile 任務意外失敗

使用Visual Studio 去建置Qt方案時出現以下訊息 : Qt:GetVarsFromMakefile 任務意外失敗 原因貌似是一個 Qt 5.14 的 Bug, 詳細如下: https://bugreports.qt.io/browse/QTVSADDINBUG-722 解決方式如下 : 於延伸模組移除Qt Visual Studio Tools 至 https://download.qt.io/development_releases/vsaddin/2.4.2/  , 下載並安裝rev.09.vsix

[CGAL, BOOST, C++, Visual Studio] Mutex is not supported when compiling with /clr or clr:pure

使用CLR專案去建置GUI並搭配CGAL的套件,出現以下訊息 : [C++] Mutex is not supported when compiling with /clr or clr:pure  目前已知原因如下 : C++ / CLR在編譯時不允許使用<mutex>, <thread>, <future>, <condition_variable>。 CGAL編譯時所包含的Boost裡有<boost/thread/mutex.hpp>, 因此編譯器會有不兼容的問題。 解決方法目前還在想,但有一個方法可能可以試試 : 將thread額外拿出來自己寫, 重新繼承? (網路上查到的, 還未確認)

[CGAL, CMake, Visual Studio, BOOST, Eigen] CMake 編譯 CGAL 之流程

首先需要一些事前準備的安裝軟體,如下 : Visual Studio (版本隨意,我自己是用2019,盡量不要2013) CMake (URL:  https://cmake.org/download/ ) CGAL (4.11.3, URL:  https://github.com/CGAL/cgal/releases ) EIGEN (3.2.10, URL :  http://eigen.tuxfamily.org/index.php?title=Main_Page ) BOOST (1.65.1, URL :  https://sourceforge.net/projects/boost/files/boost-binaries/1.65.1/ ) Visual C++ (14.0, MSVC140) 特別要注意的是Visual C++版本, 我直接上2019的原因就是有很多相關SDK或Framwork都比較新, 可以向下相容,比較不會有少東少西的問題, 但要注意的是MSVC版本到底是要以哪個為主, 如果是要以MSVC140,那Visual Studio 2019安裝時記得要裝MSVC140相關的套件! CMake的部分,詳細如下 :  where is the source code : CGAL路徑 where to build the binaries : CGAL路徑\build (自行建立一個build資料夾) 執行configure,選擇Visual Studio版本 執行後發現有些路徑需要設置,例如 : BOOST、EIGEN3... 設置路徑完畢後將以下打勾 BUILD_SHARED_LIBS BUILD_TESTING CGAL_DONT_OVERRIDE_CMAKE_FLAGS CGAL_ENABLE_PRECONFIG WITH_CGAL_Core WITH_CGAL_ImageIO WITH_Eigen3 WITH_GMP WITH_MPFR 執行Generate以及Open Project 選擇Debug / x64  ALL_BUILD右鍵建置 選擇Release / x64 ALL_BUI...

[TensorFlow, C++, Visual Studio, Windows] TensorFlow C++ 如何編譯與解決BUG (How to build Tensorflow C++ API with Visual Studio and solve BUG)

圖片
主要環境 : Windows, TensorFlow, C++, Visual Studio 安裝流程簡單說一下,網路有很多資料,都差不多。 以下為我安裝的各版本,只能說版本真的很重要,要去看文件是否有相通,版本可看 版本對應查詢 。 TensorFlow v1.10 Python v3.5 Visual Studio v2015 Cmake v3.12.0 SWIG v3.0.12 Git v2.20.1 首先先去Github下載對應的版本TensorFlow,記住不要錯...發生別的問題請自行解決。 接著CMake配置如圖,tensorflow的勾選部份自己斟酌吧,後來我有增加打勾tensorflow_GRPC_SUPPORT,網路上的人不推薦,這就看各位吧 : 接著Open Project,進入VS2015編譯,接著我只講我遇到的BUG與解法,沒遇過的別問我,我也不想碰到。 1.找不到 device_attributes.pb_text.h 個人解法: 工具 專案與方案 建置並執行 設置為 1 為平行專案組件的最大數目 2.找不到grpc/grpcpp.h 個人解法: 直接git clone https://github.com/grpc/grpc.git 將噴錯的專案右鍵"屬性" c/c++ 其他include目錄 增加clone下載的grpc\include 3.噴c_api.cc.obj有問題,從錯誤去看,看內容是有關WorkerCacheInterface之類的,我判斷是跟沒有弄到/tensorflow/core/distributed_runtime可能有些許關係,再往下查發現這跟grpc套件可能有關。 因此我重新使用CMake 把tensorflow_ENABLE_GRPC_SUPPORT打勾 把解法二的include增加都拿掉 重新編譯 成功產生tensorflow.lib/dll 4.fatal error LNK1181: 無法打開輸入文件“\pywrap_tensorflow_internal.lib” 個人解法 : 將 _beam_search_ops、_gpu_ops、_lst...