【发布时间】:2016-03-24 06:35:56
【问题描述】:
我正在努力理解一些基本概念,但我似乎无法弄清楚它们。
我真的很困惑为 C++ 安装(我认为它们被称为库)意味着什么。我正在尝试安装 OpenCV,但我不知道安装它需要发生什么、如何检查或 OpenCV 到底是什么(它是库、框架还是其他东西?)。
我的理解是 OpenCV(和其他库/框架)仅作为源代码分发,因此能够跨平台工作。然后,在你下载它之后,你必须构建它(虽然我不知道构建是什么意思),然后将你的编译器链接到它,以便它可以访问文件?我不知道这将如何完成,或者这意味着什么。我认为很多这一切都是由 CMake 完成的,但我不知道 CMake 真正做了什么,你将如何使用它,或者你将如何在代码中使用库/框架。此外,像 OpenCV 这样的库将安装在哪里,clang(或任何其他编译器/链接器)如何知道在哪里找到它们,以及它们是什么类型的文件(.a、.dylib、.cpp、.hpp、可执行文件,或一切的集合)?这种结构是 C++ 和 OS X 特有的还是更普遍?
我不是在寻找有关如何安装 OpenCV 或其他库的教程,而是在尝试了解其实际工作原理,因此我以后不需要教程。
【问题讨论】:
-
您的问题有很多:您必须了解如何编译和链接 C++ 代码,如何将第三方库与 C++ 一起使用,以及像
cmake这样的构建工具是什么。无论实现或平台如何,一般概念都适用于 C++。使用像 XCode 或 Eclipse-CDT 或 Visual Studio 之类的 IDE 掩盖了许多较低级别的细节(您在 GUI 中配置一些设置,其余的由工具完成),但是您的问题既非常广泛,也很难回答了解您的 C++ 熟练程度。 -
我建议您首先用您想要使用 OpenCV 的语言和您计划使用的平台编写一个简单的“hello world”应用程序。接下来阅读有关其工作原理的详细信息。要解开这个谜团,你必须知道的主要事情是这个;程序被编译成单独的部分。各个部分通过“链接”过程组合成一个应用程序。使用 OpenCV 之类的东西需要您将程序的部分与其他人制作的部分(如 OpenCV)链接在一起。
-
感谢您的快速回复。过去我已经成功地使用了 C++ 的 3rd 方库,但我不知道“幕后”发生了什么,因为像 pkg-config 这样的东西已经为我完成了肮脏的工作。我从来没有在 C++ 中使用过 IDE,因为对于初学者来说,它们似乎比使用文本编辑器和学习 IDE 的功能更令人困惑。到目前为止,我最大的问题是我发现的所有资源都没有讨论低级发生的事情,因此我不知道如何将简单的 hello world 程序扩展到更大、更有用的东西。
-
This 不会帮助您理解,但是如果您可以按照教程进行操作,那么它可能(也许)会让您开始使用 OpenCV 和 Mac
-
我过去看过教程,但不知道下面发生了什么,我不确定这会有多大帮助。
标签: c++ macos opencv installation libraries