我试图在一个项目中使用lib手电筒、qt小部件、点云库(Pcl)和opencv。对于这个项目,我使用cmake列表。问题是,当我同时使用所有四个库时,lib手电会抛出错误。如果我使用lib手电筒,opencv和qt一切都很好,而且如果我使用pcl和opencv,一切也都很好。我得到的错误列在下面:
/libtorch/include/torch/csrc/jit/api/object.h: In member function ‘size_t torch::jit::Object::num_slots() const’:
/libtorch/include/torch/csrc/jit/api/object.h:173:28: error: expected unqualified-id before ‘(’ token 173 return _ivalue()->slots().size();
/libtorch/include/ATen/core/ivalue_inl.h: In member function ‘c10::intrusive_ptr c10::IValue::toCustomClass() const &’:
/libtorch/include/ATen/core/ivalue_inl.h:1642:3: error: expected unqualified-id before ‘(’ token
1642 | TORCH_CHECK(
/libtorch/include/ATen/core/ivalue_inl.h: In member function ‘c10::intrusive_ptr c10::IValue::toCustomClass() &&’:
/libtorch/include/ATen/core/ivalue_inl.h:1624:3: error: expected unqualified-id before ‘(’ token
1624 | TORCH_CHECK(
| ^~~~~~~~~~~
/libtorch/include/ATen/core/ivalue_inl.h:1419:36: error: expected unqualified-id before ‘)’ token
1419 | const std::vector& slots() const {有谁知道为什么利布托尔会抛出这些错误吗?
发布于 2022-06-10 09:50:53
经过多次尝试,我成功地将这四个库绑定在一起,并使它们正常工作。即使在解决了原问题中提到的错误之后,仍有许多问题需要解决。我将简单地描述一下我所做的事情,如果有人要面对这个问题,就知道如何解决这个问题。由于具有相同名称的方法或结构,qt与lib手电之间存在许多冲突。
首先,我从代码中删除了所有的someLibrary::some_function()).,并在某个库调用的每个函数或结构(即)前面使用了范围解析操作符。
。
#undef插槽#包括 #include # Q_SLOTS
。
${TORCH_INCLUDE_DIRS}添加到CMakeLists文件的包含目录中,还必须在主CMakeLists.txt set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -luuid")中添加以下行。一个有帮助的链接是Here。
这就是关于it...It,修正了原来问题中的错误,并将这四个框架结合在一起。
https://stackoverflow.com/questions/72533139
复制相似问题