ZBar 库构建失败,出现 Android NDK(预期标识符或“(”在“.”之前)

ZBar library build failed with Android NDK (expected identifier or '(' before '.')

我无法使用 Android NDK 构建 ZBar C++(?) 库,而且当我在网上搜索有关它的信息时,我还没有找到任何可以帮助我理解的东西。这有点超出我的范围,所以我希望有人能帮助我完成这项工作。

背景:我一直在尝试在我的 Android 应用程序中实现一个简单的 QR 扫描器,而不会过多地增加应用程序的大小。我看过 Obsqr 项目 (https://bitbucket.org/trikita/obsqr) which is a very small QR scanner, based on the ZBar library. I've successfully implemented a QR scanner with the ZBar library using the regular library (http://sourceforge.net/projects/zbar/files/AndroidSDK/),但这使我的 3 MB apk 大小增加了一倍,所以理想情况下,我想找到一种解决它的方法,就像在 Qbsqr 中所做的一样。据我所知,它使用 Android NDK 来编译 C++ 库,尽管我以前从未使用过 C++ 或 Android NDK。

我已经下载了代码并尝试自己构建应用程序,然后尝试对其进行修改以供我使用,但我就是无法让它工作。 ndk-build 给出以下错误消息:

\src\main\jni\bch15_5.c:1:1 : expected identifier or '(' before '.' token

文件本身如下所示:

../../../zbar/zbar/qrcode/bch15_5.c

由于我没有用 C++ 进行过任何编程,所以我不确定它应该是什么样子,但是从我在网上搜索帮助时看到的情况来看,该文件看起来与其他文件不太一样我见过的C++文件。库中的几乎所有文件似乎都具有相同的结构,所以我不确定如何处理它们。

有人知道我是否应该以任何方式更改文件,或者我是否忘记在构建应用程序之前做些什么?

bitbucket 上的这个项目似乎搞砸了:它显示符号链接而不是实际文件。您应该下载 https://bitbucket.org/trikita/zbar/ 并按照那里的构建说明进行操作。