本文介绍: 首先确定安装成功了,但是有时候安装成功pkg-config还是会找不到,这时候需要在目录/usr下查找。当./configure运行不再出错时,可以进行make了,然后使用make install安装。目前这个项目里面的configure和Makefile都要重新生成的。clone完源码切换到目录neard里。如果报错找不到Netlink library,则根据上文安装。笔者的ubuntu18.04默认安装的是2.56.4。目的是为了生成aclocal.m4这个文件。

项目github地址:

https://github.com/linux-nfc/neard

git clone地址:

https://github.com/linux-nfc/neard.git

1.安装依赖库

clone完源码切换到目录neard里。这个项目需要依赖一下库:

    – GCC compiler

    – D-Bus library

    – GLib library

    – Netlink (libnl) library, version 1 or 2.

可以使用项目自带脚本安装或者单独安装。

1.1脚本安装

项目安装必要库的脚本在目录ci下,比如ubuntu系统可以使用ubuntu.sh

1.2单独安装

单独安装方式如下:

sudo apt-get install libdbus-1-dev libglib2.0-dev libnl-3-dev libnl-genl-3-dev

安装完成后使用dpkg查看库的版本,比如查看glib的版本:

dpkg -l|grep glib

其他自动编译的工具如果之前没安装过也需要安装:

apt-get install autoconf autoconf-archive automake libtool pkg-config make

2.生成编译脚本并编译和安装

目前这个项目里面的configure和Makefile都要重新生成的。生成方式如下:

1.运行

aclocal

目的是为了生成aclocal.m4这个文件。

2.运行

autoheader
autoconf

不运行autoheader可能报错:

configure.ac:7: error: required file ‘config.h.in’ not found 

3.运行

libtoolize --automake --copy --debug --force
automake --add-missing

不运行libtoolize的话,直接运行automake可能会报错。

4.运行

./configure --prefix=/usr

如果报错找不到glib:

首先确定安装成功了,但是有时候安装成功pkg-config还是会找不到,这可能是因为系统里面有多个pkgconfig文件夹,pkg寻找库的时候是根据这个文件夹下的.pc文件查找的,正常需要把所有pkgconfig文件夹的路径添加到PKG_CONFIG_PATH这个环境变量里,这样pkg才会使用所有pkgconfig文件夹下的.pc文件,但是安装glib的时候把glib的.pc文件放在了一个新建的pkgconfig文件夹而没把它添加进pkg查找路径,这时候需要在目录/usr下查找glib-2.0.pc这个文件,一般是在一个名字叫pkgconfig的文件夹下,终端执行:

export  PKG_CONFIG_PATH="/usr/local/lib/pkgconfig":$PKG_CONFIG_PATH

注意PKG_CONFIG_PATH后面跟的路径是上面找到的路径

如果报错找不到Netlink library,则根据上文安装。

当./configure运行不再出错时,可以进行make了,然后使用make install安装。

make
sudo make install

安装到系统里。

这里介绍主要的几个文件:

neard

生成的可执行程序,默认安装到/usr/libexec/nfc/

org.neard.conf

neard使用dbus的conf文件,如果dbus守护进程找不到这个文件,neard在申请使用dbus的时候会拒绝导致报错。默认安装到/usr/etc/dbus-1/system.d/

neard.service

neard的服务文件,默认安装到/lib/systemd/system

neard相关头文件

默认安装到/usr/include/near,使用neard守护进程写应用的时候需要包含这些头文件

3.运行

正常neard是作为系统守护进程一直在后台运行的,所以neard的启动是通过service启动的,当然也可以命令行启动。注意,neard默认安装在/usr/libexec/nfc/目录下的,如果这个目录没有加进PATH里面,命令行是找不到neard这个命令的。

使用以下指令使能nead这个服务:

sudo systemctl enable neard.service

再使用以下指令启动neard守护进程:

sudo systemctl start neard.service

如果报错比如:

使用以下指令查看错误原因:

sudo systemctl status neard.service

笔者这里的错误原因如下:

这主要是因为dbus的配置里面没有关于neard的配置,其实还是文件没放对地方。dbus的配置文件一般都在/etc/dbus-1/system.d/目录下,里面有很多.conf文件,里面如果没有neard相关的conf文件就会报错。默认neard的conf文件会安装到 /usr/etc/dbus-1/system.d/下面,只需要把它copy到刚才的文件夹下就可以了。然后再次启动service即可。

原文地址:https://blog.csdn.net/qwe5959798/article/details/135655830

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_57718.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注