簡體   English   中英

使用 Libtorch + OpenCV + QT Creator 時出錯

[英]Errors while using Libtorch + OpenCV + QT Creator

我在 .pro 文件中有以下配置

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
CONFIG += thread

SOURCES += main.cpp

INCLUDEPATH += /usr/local/include/opencv4
LIBS += -L/usr/local/lib/
LIBS += -lopencv_core
LIBS += -lopencv_highgui
LIBS += -lopencv_imgproc
LIBS += -lopencv_videoio

QMAKE_CXXFLAGS += -D_GLIBCXX_USE_CXX11_ABI=0

INCLUDEPATH += /path/to/libtorch/include
INCLUDEPATH += /path/to/libtorch/include/torch/csrc/api/include
LIBS += -L/path/to/libtorch/lib
LIBS += -ltorch -lc10

沒有“QMAKE_CXXFLAGS += -D_GLIBCXX_USE_CXX11_ABI= 0 ”,OpenCV 工作得非常好。 但是,有了這個,我得到以下錯誤:

在此處輸入圖像描述

OpenCV 也適用“QMAKE_CXXFLAGS += -D_GLIBCXX_USE_CXX11_ABI= 1 ”。 但它引發了一組不同的錯誤:

在此處輸入圖像描述

大多數論壇都建議為 Libtorch 設置“QMAKE_CXXFLAGS += -D_GLIBCXX_USE_CXX11_ABI= 0 ”,以避免上述錯誤。

什么可能是解決此問題的解決方案或一些解決方案? (我是 Libtorch 和 Qt Creator 的新手。)

也許 OpenCV 和 Libtorch 是用不同版本的 GCC 編譯的(以及不同的 _GLIBCXX_USE_CXX11_ABI 值)。

嘗試自己重新編譯它們,看看情況是否會發生變化。

問題是您下載了錯誤的 ABI 版本的 LibTorch 看起來您下載了 LibTorch 的Pre-CXX11 ABI版本,並且 OpenCV 是使用CXX11 ABI編譯的。 所以如果你設置_GLIBCXX_USE_CXX11_ABI=0 ,OpenCV 會拋出錯誤,如果你設置_GLIBCXX_USE_CXX11_ABI=1 ,LibTorch 會拋出錯誤。

從 PyTorch 官網下載 CXX11 ABI LibTorch,您不需要設置_GLIBCXX_USE_CXX11_ABI標志。

選擇 CXX11 ABI

關於GCC的雙重ABI問題,見https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

暫無
暫無

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

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