簡體   English   中英

使用 Qt 的程序,從 VS 啟動時 OpenCV 運行良好,但在使用 OpenCV 功能時運行可執行文件通常會崩潰

[英]Program using Qt, OpenCV runs fine when started from VS, but running the executable ordinarily crashes when OpenCV functionality would be used

我正在嘗試部署我的 C++ 程序。 如果我從 VS IDE(發布模式)運行程序,它的每個功能都可以工作。 當我通常運行相同的可執行文件時,主窗口正常運行並且其非 OpenCV 功能正常工作; 但是當我嘗試打開一張圖片並讓程序使用 OpenCV 的東西時(打開它會調用對圖片的幾個 OpenCV 操作),它崩潰了。

我從 VS 2017 的開發人員命令提示符成功運行了windeployqt 不過,它沒有復制我的可執行文件旁邊的 OpenCV dll,所以我復制了其他 dll 旁邊的opencv_world400.dllopencv_ffmpeg400_64.dll 我認為這是我遺漏了一些東西的步驟。 該文件夾現在看起來像這樣:可執行文件的文件夾

我將 VS2017 與 Qt5.10.1 和 OpenCV4.0 一起使用。 我不認為我可以插入相關代碼,因為該項目非常大並且廣泛使用 OpenCV 功能。

我想通了,問題與 OpenCV 無關( opencv_world400.dll足以復制到文件夾中)。

問題是:我使用 Qt 的applicationDirPath() ,它返回可執行文件的路徑,來訪問我之前應該在那里創建的結果文件夾,但沒有。 該程序(如果從 VS 運行)正在訪問Debug文件夾中現有的Results文件夾,即使我在發布模式下運行該程序並且applicationDirPath()正在返回Release文件夾中的可執行文件的路徑。 當我通常運行相同的可執行文件時,它找不到結果文件夾並崩潰了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM