解决了很多问题之后,我认为我成功地使用以下方法安装/编译了 libnfc这些说明。
现在我正在尝试编译/安装 mfcuk。一旦我进入 ./configure 步骤,我就会收到以下错误
Sam@Sam-PC /c/Users/Sam/Documents/mfcuk/mfcuk-read-only
$ ./configure
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
./configure: line 3739: syntax error near unexpected token `LIBNFC,'
./configure: line 3739: `PKG_CHECK_MODULES(LIBNFC, libnfc >= $LIBNFC_REQUIRED_VE
RSION, , AC_MSG_ERROR([libnfc >= $LIBNFC_REQUIRED_VERSION is mandatory.]))'
我猜这与我没有正确告知某些东西(pkg-config?)libnfc 在哪里有关?任何帮助都非常感谢。
答案1
如果 pkg-config 找不到模块,通常不会出现“语法错误”这样的错误信息。但正确安装的 libnfc 可能会提供LIBNFC
configure 无法找到的宏。
你可以尝试./autogen.sh
然后重新运行 configure;如果默认的附带configure
脚本不好,这可能会有所帮助(从autogen.sh
重新生成,前提是您安装了正确的依赖项(autoconf、automake、GNU make,通常是 libtool)。configure
configure.in
如果这不起作用,您需要运行 ./configure --help 并找出要指定的环境变量,以手动设置 libnfc 的标头和库的路径。实际在环境中设置的路径完全取决于您安装 libnfc 的位置(如果有的话)...标头是 .h 文件,库是 .dll 文件(如果您是静态编译,则是 .a 文件)。
没有使用过mfcuk
autoconf 的相关经验应该软件包之间的工作方式相同...我确实对 Windows/MinGW32 上的 autoconf 有相当多的经验。所以如果你遇到困难,请回复。
答案2
如果你正在编译的包是 nfc-tools,那么这个问题的描述如下问题 76:编译 libnfc-llcp - 错误。
据称这个问题已由修订版 r955,自 2011 年 10 月 18 日起:
libnfc-llcp:在 configure.ac 中将 mqueue.h 和 pkg-config 设置为要求(修复问题 76)
您可以尝试获取较新版本的 configure.ac 来修复错误。
这下载页面列出了 2011 年 11 月的最新 nfc-eventd-0.1.5.tar.gz,可能会有用,或者你可以尝试svn 源。