在 macOS 上将 Zbar 导入 C++ 项目
Importing Zbar into C++ project on macOS
我正在尝试使用 Zbar,这是一个条形码读取库,具有针对不同语言和环境的绑定。我正在尝试将 Zbar 与 C++ 一起使用。我已经编写了 C++ 代码,但我不太了解导入库和设置我的 IDE 来执行此操作。我在 macOS Sierra 上使用 Xcode。任何指导将不胜感激。
编辑:多亏了下面的回答,我才能够成功安装 ZBar。但是,当我尝试在 Xcode 中构建以下代码时:
#include <iostream>
#include <zbar.h>
int main(int argc, const char * argv[]) {
zbar::ImageScanner scanner;
return 0;
}
我收到以下错误:
我建议您使用 homebrew 来管理 Mac 上的所有包,因为 Apple 出于某种原因不提供包管理器。您可以从 brew.sh.
中获取它
安装完成后,您只需安装 zbar
即可:
brew install zbar
最好也安装 pkgconfig
:
brew install pkgconfig
现在你可以在命令行编译:
clang yourProgram.c $(pkg-config --cflags --libs zbar) -o yourProg
或使用 C++,或 g++:
clang++ yourProgram.cpp $(pkg-config --cflags --libs zbar) -o yourProg
如果要使用Xcode,需要设置:
- headers 的搜索路径(包括文件)
- 库的搜索路径
- 图书馆本身。
因为它们不是那么容易找到,点击下图中的 1
然后 2
可以到达 Xcode 的正确区域:
现在像这样设置它们:
一切都应该顺利进行 - 正如我们的美国朋友所说。这种方法利用了 homebrew 总是将符号链接放在 /usr/local/include
和 /usr/local/lib
中,指向你拥有的最新、最好版本的 zbar
安装。因此,如果您更新任何 homebrew 软件包,您的代码将使用最新、最好的版本。你可以看到我说的链接是这样的:
ls -l /usr/local/include | grep zbar
lrwxr-xr-x 1 mark admin 34 13 Mar 12:15 zbar -> ../Cellar/zbar/0.10_4/include/zbar
lrwxr-xr-x 1 mark admin 36 13 Mar 12:15 zbar.h -> ../Cellar/zbar/0.10_4/include/zbar.h
ls -l /usr/local/lib | grep zbar
lrwxr-xr-x 1 mark admin 41 13 Mar 12:15 libzbar.0.dylib -> ../Cellar/zbar/0.10_4/lib/libzbar.0.dylib
lrwxr-xr-x 1 mark admin 35 13 Mar 12:15 libzbar.a -> ../Cellar/zbar/0.10_4/lib/libzbar.a
lrwxr-xr-x 1 mark admin 39 13 Mar 12:15 libzbar.dylib -> ../Cellar/zbar/0.10_4/lib/libzbar.dylib
P.S。您将 homebrew 更新为:
brew update && brew upgrade
如果你想使用zbar
的特定版本,你需要更努力一些。
你得到这样的包含路径:
pkg-config --cflags zbar
示例输出
-I/usr/local/Cellar/zbar/0.10_4/include
库路径如下:
pkg-config --libs zbar
示例输出
-L/usr/local/Cellar/zbar/0.10_4/lib -lzbar
然后将这些值按照以下行输入 Xcode:
我正在尝试使用 Zbar,这是一个条形码读取库,具有针对不同语言和环境的绑定。我正在尝试将 Zbar 与 C++ 一起使用。我已经编写了 C++ 代码,但我不太了解导入库和设置我的 IDE 来执行此操作。我在 macOS Sierra 上使用 Xcode。任何指导将不胜感激。
编辑:多亏了下面的回答,我才能够成功安装 ZBar。但是,当我尝试在 Xcode 中构建以下代码时:
#include <iostream>
#include <zbar.h>
int main(int argc, const char * argv[]) {
zbar::ImageScanner scanner;
return 0;
}
我收到以下错误:
我建议您使用 homebrew 来管理 Mac 上的所有包,因为 Apple 出于某种原因不提供包管理器。您可以从 brew.sh.
中获取它安装完成后,您只需安装 zbar
即可:
brew install zbar
最好也安装 pkgconfig
:
brew install pkgconfig
现在你可以在命令行编译:
clang yourProgram.c $(pkg-config --cflags --libs zbar) -o yourProg
或使用 C++,或 g++:
clang++ yourProgram.cpp $(pkg-config --cflags --libs zbar) -o yourProg
如果要使用Xcode,需要设置:
- headers 的搜索路径(包括文件)
- 库的搜索路径
- 图书馆本身。
因为它们不是那么容易找到,点击下图中的 1
然后 2
可以到达 Xcode 的正确区域:
现在像这样设置它们:
一切都应该顺利进行 - 正如我们的美国朋友所说。这种方法利用了 homebrew 总是将符号链接放在 /usr/local/include
和 /usr/local/lib
中,指向你拥有的最新、最好版本的 zbar
安装。因此,如果您更新任何 homebrew 软件包,您的代码将使用最新、最好的版本。你可以看到我说的链接是这样的:
ls -l /usr/local/include | grep zbar
lrwxr-xr-x 1 mark admin 34 13 Mar 12:15 zbar -> ../Cellar/zbar/0.10_4/include/zbar
lrwxr-xr-x 1 mark admin 36 13 Mar 12:15 zbar.h -> ../Cellar/zbar/0.10_4/include/zbar.h
ls -l /usr/local/lib | grep zbar
lrwxr-xr-x 1 mark admin 41 13 Mar 12:15 libzbar.0.dylib -> ../Cellar/zbar/0.10_4/lib/libzbar.0.dylib
lrwxr-xr-x 1 mark admin 35 13 Mar 12:15 libzbar.a -> ../Cellar/zbar/0.10_4/lib/libzbar.a
lrwxr-xr-x 1 mark admin 39 13 Mar 12:15 libzbar.dylib -> ../Cellar/zbar/0.10_4/lib/libzbar.dylib
P.S。您将 homebrew 更新为:
brew update && brew upgrade
如果你想使用zbar
的特定版本,你需要更努力一些。
你得到这样的包含路径:
pkg-config --cflags zbar
示例输出
-I/usr/local/Cellar/zbar/0.10_4/include
库路径如下:
pkg-config --libs zbar
示例输出
-L/usr/local/Cellar/zbar/0.10_4/lib -lzbar
然后将这些值按照以下行输入 Xcode: