使用Cmake运行ArUco示例
Run ArUco example using Cmake
我是Cmake和使用它构建项目的新手。我以前没有使用过这个工具,因此对它的工作原理了解较少
我正在尝试运行ArUco库的示例。但是ArUco库提供的README建议使用Cmake来运行它们。我有Windows 8.1和Visual studio 2013,还下载并安装了Cmake3.4.0。
安装后,我搜索了关于Cmake的示例或教程,发现了一些视频教程,展示了如何使用Cmake编译程序。但是,在遵循相同的步骤时,我出现了错误。错误如所示
我浏览了论坛上发布的不同问题,但没有找到答案。我不确定是否需要设置环境变量和路径。对此提出一些建议将非常有帮助
非常感谢你的帮助。
错误:
C编译器标识为MSVC 18.0.40629.0
CXX编译器标识为MSVC 18.0.40629.0
检查是否使用以下C编译器:Visual Studio 12 2013
检查是否使用以下C编译器:Visual Studio 12 2013--有效
正在检测C编译器ABI信息
检测C编译器ABI信息-完成
使用Visual Studio 12 2013检查CXX编译器是否正常工作
使用Visual Studio 12 2013检查CXX编译器是否正常工作
正在检测CXX编译器ABI信息
正在检测CXX编译器ABI信息-已完成
检测CXX编译功能
检测CXX编译功能-已完成
CMakeLists.txt中的CMake错误:5(find_package):
由于没有在cmake_MODULE_PATH中提供"Findaruco.cmake",该项目具有
要求CMake查找"aruco"提供的软件包配置文件,但
CMake没有找到
找不到"aruco"提供的包配置文件,其中包含以下名称:
arucoConfig.cmake<br/>
aruco-config.cmake<br/>
将安装前缀"aruco"添加到CMAKE_prefix_PATH或设置"arucoDIR"到包含上述文件之一的目录。如果"aruco"提供了一个单独的开发包或SDK,请确保已安装
配置不完整,出现错误
另请参阅"E:/../aruco-testproject/build/CMakeFiles/CMakeOutput.log"。
我在Mac上遇到了同样的问题,希望Windows用户也能发现这一点。
很可能你没有安装aruco。转到您下载的aruco源文件夹(即~/Downloads/aruco-2.0.14)并运行以下命令
cmake .
make
make install
然后您将能够构建aruco-testproject
cmake .
make
希望这能帮助
实际上很清楚出了什么问题。CMake找不到某些包。
快速且肮脏的解决方案
一种解决方案是按照错误消息的建议进行:
进入特定的CMakeLists.txt
文件,像一样设置aruco_Dir
变量
set( auruco_Dir /PATH/TO/ARUCO/WHERE/AURUCOCONFIG.CMAKE/IS/LOCATED/AS/WELL )
真正的方式
一种更好的方法是在CMAKE_MODULE_PATH
中提供Findaruco.cmake
模块。这被称为模块,因为它集成了CMake的find_package
机制(https://cmake.org/cmake/help/v3.0/command/find_package.html,上次访问时间为2015年12月11日),并提供有关aruco
在文件系统中的位置的中心信息。(这里Aruco
只是示例。其他模块也是如此)
这有什么好处,为什么我需要find_package
和那些模块
答案很简单。你只有一个中心位置需要管理,而不是很多。想象一下你的背包的位置发生了变化。是否要修复引用此程序包的每个CMakeLists.txt
文件?它类似于的基本编程范式
不要重复自己的
不要硬编码任何
- 激励'inline'说明符的真实世界示例?
- 为什么示例代码访问IUnknown中已删除的内存
- 以下示例中如何避免代码复制?C++/库达
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 示例C++项目编译中的警告
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- 当Microsoft文档仅包含 C# 示例时,如何查找 C++ 包含文件名
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 为什么理解这个递归示例如此难以转化为直觉?
- Eventloop 卡住:NAO C++ SDK OnFaceDetection 示例
- 如何替换此示例代码片段中已弃用的handler_type_t或 boost::asio::handler_type?
- 适用于 WebView2 旧版本的示例应用程序
- 即使直接从官方示例中复制,也找不到未知类型名称QML_ELEMENT和 QML 模块
- 使用 aruco 和 opencv4 的未解析符号
- 将数组/向量发送到 c++ 脚本的 cython 示例
- 了解提升执行器示例
- 请求最简单的 OpenMP 目标 GPU 示例
- 两种模板示例有什么区别?
- 有人可以在下面的示例 C++ 程序中解释字符数组 KCHAR1 的奇怪行为吗?
- 使用Cmake运行ArUco示例