nanoms库的安装以及该库对应的php扩展php-nano的安装

下载nanomsg库:

https://github.com/nanomsg/nanomsg

然后解压后cd进入到nanomsg库的源码路径下:

然后在源码路径下执行:

cmake . (You can add -DCMAKE_INSTALL_PREFIX=/usr/local or some other directory.)

然后执行:

cmake --build .

然后执行:

ctest -C Debug .

然后执行:

cmake --build . --target install 

然后执行:

ldconfig 

安装成功后设置下PKG_CONFIG_PATH:

export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/:$PKG_CONFIG_PATH

然后运行看看nanomsg库路径是否能被正常找到:

运行:

pkg-config --cflags nanomsg

输出:

[root@fzsf fzsf]# pkg-config --cflags nanomsg
-I/usr/local/include

则,说明正常;

关于pkg-config 的设置,下面做个说明:

pkg-config 是通过库提供的一个 .pc 文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。这些信息可以通过 pkg-config 提供的参数单独提取出来直接供编译器和连接器使用。

在默认情况下,每个支持 pkg-config 的库对应的 .pc 文件在安装后都位于安装目录中的 lib/pkgconfig 目录下。例如,我们在上面已经将nanomsg库 安装在 /usr/local 目录下了,那么这个 nanomsg 库对应的 .pc 文件是 /usr/local/lib64/pkgconfig/nanomsg.pc目录下(64位的系统,默认会保存在./lib64下,而不是./lib下)。

使用 pkg-config 的 –cflags 参数可以给出在编译时所需要的选项,而 –libs 参数可以给出连接时的选项。例如,假设一个 demo.c 的程序用到了 nanomsg 库,就可以这样编译:gcc -c `pkg-config --cflags nanomsg` demo.c

然后这样连接:

gcc demo.o -o demo `pkg-config --libs nanomsg`  

或者上面两步也可以合并为以下一步:

gcc demo.c -o demo `pkg-config --cflags --libs nanoms`

可以看到:由于使用了 pkg-config 工具来获得目前的库(nanomsg)的选项和相关路径,所以不论该库安装在什么目录下,都可以使用相同的编译和连接命令,带来了编译和连接界面的统一,将不同路径带来的不便利性做了统一的封装和隐藏 ,使用者只需要统一用 --cflags 以及 --libs即可 ,非常的方便 。

使用 pkg-config 工具提取库的编译和连接参数时有两个基本的前提:

1.库本身在安装的时候必须提供一个相应的 .pc 文件。如果不存在这个.pc文件,则说明该库不支持 pkg-config 工具的使用。

2.pkg-config 必须知道要到哪里去寻找此 .pc 文件。

对应前提2 ,为了让pkg-config工具知道nanomsg对应的.pc文件是放置在哪里的,这里可以在当前命令行下直接设置下环境变量PKG_CONFIG_PATH的值,将nanomsg的.pc文件的路径追加的到里面去,如 export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/:$PKG_CONFIG_PATH

设置后查看效果 :

[root@fzsf pkgconfig]# pkg-config --libs nanomsg
-L/usr/local/lib64 -lnanomsg  


[root@fzsf pkgconfig]# pkg-config --cflags nanomsg
-I/usr/local/include  

说明是可以成功的找到nanomsg相关的头文件还有库的,但是这个时候重启下服务器,再次运行 上述命令,发现又失效了,则证明我们对环境变量的设置:

export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/:$PKG_CONFIG_PATH 是临时的,而不是永久的!!

下面我们着手解决这个问题:
刚才说了,刚才在当前窗口设置的pkg_config_path,只对当前窗口有效,如果服务器重启了后就会失效;那我们可以把该环境变量的设置放置到系统的/etc/profile 文件,如:

vim /etc/profile 

打开该文件后,在文件的末尾追加以下信息:

export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/:$PKG_CONFIG_PATH

然后保存后重新启动服务器后做测试;

在命令行下输入:

pkg-config --cflags --libs nanomsg

如果成功获取到了 -I 和 -L的路径:

-I/usr/local/include  -L/usr/local/lib64 -lnanomsg  

证明环境变量加载有效,欧耶;






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值