[英]Libtorch errors when used with QT, OpenCV and Point Cloud Library
[英]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
標志。
關於GCC的雙重ABI問題,見https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.