在 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