在 OS X 上安装 C++ 库
Installing C++ Libraries on OS X
我正在努力了解一些基本概念,但我似乎无法理解它们。
我真的很困惑为 C++ 安装(我认为它们被称为库)意味着什么。我正在尝试安装 OpenCV,但我不知道安装它需要做什么,如何检查,或者 OpenCV 到底是什么(它是库、框架还是其他东西?)。
我的理解是 OpenCV(和其他 libraries/frameworks)仅作为源代码分发,因此能够跨平台工作。然后,在你下载它之后,你必须构建它(虽然我不知道构建是什么意思),然后 link 你的编译器反对它以便它可以访问文件?我不知道这将如何完成,或者这意味着什么。我认为其中很多都是由 CMake 完成的,但我不知道 CMake 到底做了什么,您将如何使用它,或者您将如何在您的代码中使用 library/framework。此外,像 OpenCV 这样的库将安装在哪里,clang(或任何其他 compiler/linker)如何知道在哪里可以找到它们,以及它们是什么类型的文件(.a、.dylib、.cpp、.hpp 、可执行文件或所有内容的集合)?这种结构是特定于 C++ 和 OS X 还是更普遍?
我不是在寻找有关如何安装 OpenCV 或其他库的教程,而是在尝试了解它的实际工作原理,这样我以后就不需要教程了。
在 C/C++ 上对 Mac 进行任何开发工作之前,您需要前往 App Store 免费下载 Xcode
- 它是 Apple 的 IDE - 集成开发环境。没有 Xcode
,您将没有编译器(即 clang
或 gcc
或 g++
),也没有构建工具(即 make
)。
安装Xcode
如果您是 Mac 的新手,App Store
看起来像这样:
和 Xcode
看起来像这样:
安装命令行工具
接下来您必须安装 Xcode 的命令行工具,因此启动终端 - 按 ⌘+SPACE 并开始键入 Terminal
,当它猜对时,只需点击 Enter/Return。将以下内容复制并粘贴到终端中,然后点击 Enter/Return.
xcode-select --install
以上称为 "Spotlight Search" 并且是在 Mac.
上查找任何内容的最简单方法
安装自制程序
然后,如果您想在 Mac 上安装 OpenCV
,请安装一个包管理器,例如 homebrew
,只需从 homebrew website进入你的终端。我不会在这里显示该行,以防它发生变化并且几年后有人会看到它,但是如果您转到上面的 link 就很容易看到。
查找包
然后你可以找到任何你想要的包:
brew search opencv # Look for packages called "opencv"
或
brew search boost # Look for "boost" libraries
安装 OpenCV
因此,对于 OpenCV
的原版(无特殊选项)安装和构建,请执行以下操作:
brew install opencv
删除包
您以后可以删除不再需要的任何软件包:
brew rm opencv
更新包
您还可以更新所有已安装的软件包:
brew update && brew upgrade && brew cleanup
构建项目
安装完成后,您就可以开始编译和构建您自己的项目了。如果您使用 pkg-config
包来获取您需要的所有必要 compiler/linker 设置,它会有所帮助,所以我建议:
brew install pkg-config
现在您可以编译 link 使用非常简单的命令,例如:
g++ $(pkg-config --cflags --libs opencv) process.cpp -o process
然后您可以继续使用 Xcode
IDE,如果您愿意的话,一旦您开始使用。
使用 Xcode
构建
一旦你开始了基本的编译,你可能想开始使用Xcode
来编辑你的程序,为此,你必须告诉Xcode
头文件在哪里以及在哪里图书馆和哪些图书馆 link。这将根据您的 OpenCV 版本而有所不同,但您需要更改下面两个图中标记的位置。如果按顺序单击它们,您会很容易找到它们 - 首先是绿色区域,然后是黄色区域,然后是蓝色区域,然后是红色区域。
我在上面标记的 Xcode 设置区域中需要输入的实际信息可以通过 运行 我在上一节中建议的相同 pkg-config
命令找到.所以 运行:
pkg-config --cflags opencv
获取头(包含)文件的位置,然后运行
pkg-config --libs opencv
获取Xcode
中的linker需要填写的信息。
我正在努力了解一些基本概念,但我似乎无法理解它们。
我真的很困惑为 C++ 安装(我认为它们被称为库)意味着什么。我正在尝试安装 OpenCV,但我不知道安装它需要做什么,如何检查,或者 OpenCV 到底是什么(它是库、框架还是其他东西?)。
我的理解是 OpenCV(和其他 libraries/frameworks)仅作为源代码分发,因此能够跨平台工作。然后,在你下载它之后,你必须构建它(虽然我不知道构建是什么意思),然后 link 你的编译器反对它以便它可以访问文件?我不知道这将如何完成,或者这意味着什么。我认为其中很多都是由 CMake 完成的,但我不知道 CMake 到底做了什么,您将如何使用它,或者您将如何在您的代码中使用 library/framework。此外,像 OpenCV 这样的库将安装在哪里,clang(或任何其他 compiler/linker)如何知道在哪里可以找到它们,以及它们是什么类型的文件(.a、.dylib、.cpp、.hpp 、可执行文件或所有内容的集合)?这种结构是特定于 C++ 和 OS X 还是更普遍?
我不是在寻找有关如何安装 OpenCV 或其他库的教程,而是在尝试了解它的实际工作原理,这样我以后就不需要教程了。
在 C/C++ 上对 Mac 进行任何开发工作之前,您需要前往 App Store 免费下载 Xcode
- 它是 Apple 的 IDE - 集成开发环境。没有 Xcode
,您将没有编译器(即 clang
或 gcc
或 g++
),也没有构建工具(即 make
)。
安装Xcode
如果您是 Mac 的新手,App Store
看起来像这样:
和 Xcode
看起来像这样:
安装命令行工具
接下来您必须安装 Xcode 的命令行工具,因此启动终端 - 按 ⌘+SPACE 并开始键入 Terminal
,当它猜对时,只需点击 Enter/Return。将以下内容复制并粘贴到终端中,然后点击 Enter/Return.
xcode-select --install
以上称为 "Spotlight Search" 并且是在 Mac.
上查找任何内容的最简单方法安装自制程序
然后,如果您想在 Mac 上安装 OpenCV
,请安装一个包管理器,例如 homebrew
,只需从 homebrew website进入你的终端。我不会在这里显示该行,以防它发生变化并且几年后有人会看到它,但是如果您转到上面的 link 就很容易看到。
查找包
然后你可以找到任何你想要的包:
brew search opencv # Look for packages called "opencv"
或
brew search boost # Look for "boost" libraries
安装 OpenCV
因此,对于 OpenCV
的原版(无特殊选项)安装和构建,请执行以下操作:
brew install opencv
删除包
您以后可以删除不再需要的任何软件包:
brew rm opencv
更新包
您还可以更新所有已安装的软件包:
brew update && brew upgrade && brew cleanup
构建项目
安装完成后,您就可以开始编译和构建您自己的项目了。如果您使用 pkg-config
包来获取您需要的所有必要 compiler/linker 设置,它会有所帮助,所以我建议:
brew install pkg-config
现在您可以编译 link 使用非常简单的命令,例如:
g++ $(pkg-config --cflags --libs opencv) process.cpp -o process
然后您可以继续使用 Xcode
IDE,如果您愿意的话,一旦您开始使用。
使用 Xcode
构建一旦你开始了基本的编译,你可能想开始使用Xcode
来编辑你的程序,为此,你必须告诉Xcode
头文件在哪里以及在哪里图书馆和哪些图书馆 link。这将根据您的 OpenCV 版本而有所不同,但您需要更改下面两个图中标记的位置。如果按顺序单击它们,您会很容易找到它们 - 首先是绿色区域,然后是黄色区域,然后是蓝色区域,然后是红色区域。
我在上面标记的 Xcode 设置区域中需要输入的实际信息可以通过 运行 我在上一节中建议的相同 pkg-config
命令找到.所以 运行:
pkg-config --cflags opencv
获取头(包含)文件的位置,然后运行
pkg-config --libs opencv
获取Xcode
中的linker需要填写的信息。