• nanomsg下载、安装、测试(一)


    本人使用环境:

    系统:ubuntu 16.04LTS

    安装软件:cmake3.18    nanomsg-1.1.5

    官网地址:https://nanomsg.org/

    1、下载下来的nanomsg-1.1.5放到public文件中

    解压源码:tar -xvzf nanomsg-1.1.5.tar.gz

    2、在nanomsg-1.1.5文件夹输入sudo apt-get install cmake安装cmake

    3、创建build文件夹用于存放cmake生成的makefile。进入build,camke编译,指定安装目录。

    在build文件中新建nanomsg_x86_lib,存放待会编译得到的x86_lib、arm_lib

    数据结构

    cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/nanomsg_x86_lib

    /usr/local/ 是默认安装到的根目录,可以通过修改 CMAKE_INSTALL_PREFIX 变量的值来指定这些文件应该拷贝到哪个目录,这里我们指定到当前目录的nanomsg_x86_lib目录。

    $PWD是当前路径

    当前路径的nanomsg_x86_lib文件夹中,后期要用需要记住这个位置。

     4、编译。cmake  --build  .

    现在还是在build文件夹中

    5、测试。ctest .

     6、安装。把编译生成的库及相关头文件安装到nanomsg_x86_lib目录中。cmake --build . --target install 

     7,让生成的nanomsg动态链接库为系统所共享。ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享。sudo ldconfig

    以下是测试

     8、本人在Public文件单独创建一个test文件夹。用来放测试用例。到test文件夹,把测试用例放到这个文件夹中。官网的pipeline.c文件是测试用例。

    官网用例源码:Getting Started with 'nanomsg'

    https://nanomsg.org/gettingstarted/pipeline.html

    根据自己的路径,输入指令:gcc pipeline.c -lnanomsg -o pipeline -I /home/spring/Public/nanomsg-1.1.5/build/nanomsg_x86_lib/include/ -L /home/spring/Public/nanomsg-1.1.5/build/nanomsg_x86_lib/include/

    指令说明:

    -I xxx:指定头文件路径。

    -L xxx:指定库路径。

    -lnanomsg:链接动态库nanomsg.so。

    pipeline.c 编译的文件

    pipeline 编译后生成的文件名字

    第一个路径/home/spring/Public/nanomsg-1.1.5/build/nanomsg_x86_lib/include/是头文件路径

    第二个路径/home/spring/Public/nanomsg-1.1.5/build/nanomsg_x86_lib/include/是库文件路径

    注意:在第六步安装时候已经明确指出安装在nanomsg_x86_lib这个文件夹内。

    运行测试:

    ./pipeline node0 ipc:///tmp/pipeline.ipc & node0=$! && sleep 1

    运行可能会出现如下错误:

    不能找到共享库文件 libtest_d.so ,加载失败。因为一般情况下Linux会在 /usr/lib 路径中搜索需要用到的库,而 libtest_d.so 库并不在这个路径下。

    解决方法有两种:一种就是把这个文件拷贝至/usr/lib路径下,但是一般不允许这样做,一般用户也不允许往这个路径里拷贝东西。另一种就是把当前路径增加为动态库的搜索路径,命令如:

    根据自己文件路径输入:export LD_LIBRARY_PATH=/home/spring/Public/nanomsg-1.1.5/build/nanomsg_x86_lib/lib:$LD_LIBRARY_PATH

    再运行:

    ./pipeline node0 ipc:///tmp/pipeline.ipc & node0=$! && sleep 1

    ./pipeline node1 ipc:///tmp/pipeline.ipc "Hello, World!"

    ./pipeline node1 ipc:///tmp/pipeline.ipc "Goodbye."

    命令行出现如下结果就是成功了。

     最后不要忘记关闭管道0

  • 相关阅读:
    liunx文件定期本地备份、异地备份、删除备份脚本
    Servlet(一)
    研究发现GPT-4o等较新的多模态AI模型的安全机制有不足之处
    Hadoop简介
    Redis的安装及启动
    举例说明自然语言处理(NLP)技术。
    解决 clickhouse jdbc 偶现 failed to respond 问题
    如何学好次世代角色建模?
    2024蓝桥杯每日一题(BFS)
    C语言指针详解
  • 原文地址:https://blog.csdn.net/weixin_39682177/article/details/127770702