簡體   English   中英

安裝 .pro 文件時出錯,在 Debian 上使用 Eigen、libigl 依賴項

[英]Error installing a .pro file, with Eigen, libigl dependencies on Debian

我正在嘗試在 Debian-9 上使用“make”安裝 .pro 文件。 依賴項是 Qt5、GSL、libigl、Eigen 和 Boost,它們的最新版本已安裝。 我使用了以下內容:

# cd build
# qmake -qt=qt5 ../qt/myfile.pro
# make

這是我得到的錯誤:

../libigl/include/igl/copyleft/boolean/../cgal/order_facets_around_edge.cpp:203:36: error: ‘Eigen::PlainObjectBase<Derived>::PlainObjectBase() [with Derived = Eigen::Matrix<int, -1, 1>]’ is protected within this context
   Eigen::PlainObjectBase<DerivedI> positive_order, negative_order;
                                    ^~~~~~~~~~~~~~
In file included from /usr/local/include/eigen3/Eigen/Core:457:0,
                 from ../libigl/include/igl/copyleft/boolean/mesh_boolean.h:15,
                 from ../src/mesh.cpp:12:
/usr/local/include/eigen3/Eigen/src/Core/PlainObjectBase.h:484:25: note: declared protected here
     EIGEN_STRONG_INLINE PlainObjectBase() : m_storage()
                         ^~~~~~~~~~~~~~~
In file included from ../libigl/include/igl/copyleft/boolean/../cgal/order_facets_around_edge.h:75:0,
                 from ../libigl/include/igl/copyleft/boolean/../cgal/propagate_winding_numbers.cpp:18,
                 from ../libigl/include/igl/copyleft/boolean/../cgal/propagate_winding_numbers.h:101,
                 from ../libigl/include/igl/copyleft/boolean/mesh_boolean.cpp:13,
                 from ../libigl/include/igl/copyleft/boolean/mesh_boolean.h:172,
                 from ../src/mesh.cpp:12:
../libigl/include/igl/copyleft/boolean/../cgal/order_facets_around_edge.cpp:203:52: error: ‘Eigen::PlainObjectBase<Derived>::PlainObjectBase() [with Derived = Eigen::Matrix<int, -1, 1>]’ is protected within this context
   Eigen::PlainObjectBase<DerivedI> positive_order, negative_order;
                                                    ^~~~~~~~~~~~~~
In file included from /usr/local/include/eigen3/Eigen/Core:457:0,
                 from ../libigl/include/igl/copyleft/boolean/mesh_boolean.h:15,
                 from ../src/mesh.cpp:12:
/usr/local/include/eigen3/Eigen/src/Core/PlainObjectBase.h:484:25: note: declared protected here
     EIGEN_STRONG_INLINE PlainObjectBase() : m_storage()
                         ^~~~~~~~~~~~~~~
Makefile:891: recipe for target 'mesh.o' failed

有人可以幫我解決這里的問題嗎?

這條線

Eigen::PlainObjectBase<DerivedI> positive_order, negative_order;

不會編譯。 它可能曾經為舊的 Eigen 版本編譯過——但這不是 Eigen-Base 類型應該如何使用,所以它可能永遠不會按預期工作(這也是 Base-constructors 在 Eigen 中受到保護的原因) .

但是,該行在最近的order_facets_around_edge.cpp中不存在,因此您似乎使用的是過時的 libigl 版本。

暫無
暫無

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

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