1. 程式人生 > >nanomsg編譯與測試

nanomsg編譯與測試

官網

原始碼下載

我使用的版本

nanomsg-1.1.4.tar.gz

編譯原始碼

1、解壓原始碼包

[email protected]:~/nano$ tar xvf nanomsg-1.1.4.tar.gz 

[email protected]:~/nano$  cd nanomsg-1.1.4/

2、生成makefile檔案

需要使用cmake,如果機器沒有安裝需要安裝 sudo apt install cmake

[email protected]:~/nano$ mkdir build
[email protected]:~/nano$ cd build

[email protected]:~/nano$ cmake .. -DCMAKE_INSTALL_PREFIX=/home/rt/opt/nano
其中-DCMAKE_INSTALL_PREFIX為安裝路徑,如果需要安裝到自己系統中就不要新增後面的引數,直接cmake ..即可。

3、編譯,安裝

[email protected]:~/nano$ cmake --build .

[email protected]:~/nano$ ctest .

[email protected]:~/nano$ cmake --build . --target install

[email protected]

:~/nano$ sudo ldconfig

此時在安裝路徑下就有生成的檔案了

4、測試

在這個網站上有入門的測試例子

我們那去其中的一個作為例子程式碼編譯執行

使用命令gcc survey.c -o survey -lnanomsg -I/home/rt/opt/nano/include -L/home/rt/opt/nano/lib -Wl,-rpath=/home/rt/opt/nano/lib

編譯

執行以下命令

./survey server ipc:///tmp/survey.ipc & server=$!
./survey client ipc:///tmp/survey.ipc client0 & client0=$!
./survey client ipc:///tmp/survey.ipc client1 & client1=$!
./survey client ipc:///tmp/survey.ipc client2 & client2=$!
sleep 4 
kill $server $client0 $client1 $client2

輸出如下:

[email protected]:~/nano$ ./survey server ipc:///tmp/survey.ipc & server=$!
[1] 25829
[email protected]:~/nano$ ./survey client ipc:///tmp/survey.ipc client0 & client0=$!
[2] 25830
[email protected]:~/nano$ ./survey client ipc:///tmp/survey.ipc client1 & client1=$!
[3] 25831
[email protected]:~/nano$ ./survey client ipc:///tmp/survey.ipc client2 & client2=$!SERVER: nn_socket

SERVER: nn_bind
SERVER: NN_RCVTIMEO -1
SERVER: NN_RCVTIMEO 5000
SERVER: SENDING DATE SURVEY REQUEST
[4] 25834
[email protected]:~/nano$ sleep 4 

SERVER: ETIMEDOUT
SERVER: SURVEY COMPLETE
SERVER: SENDING DATE SURVEY REQUEST
CLIENT (client0): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client2): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client1): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client2): SENDING DATE SURVEY RESPONSE
CLIENT (client0): SENDING DATE SURVEY RESPONSE
CLIENT (client1): SENDING DATE SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:12 2018" SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:12 2018" SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:12 2018" SURVEY RESPONSE
SERVER: ETIMEDOUT
SERVER: SURVEY COMPLETE
SERVER: SENDING DATE SURVEY REQUEST
CLIENT (client0): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client1): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client2): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client0): SENDING DATE SURVEY RESPONSE
CLIENT (client2): SENDING DATE SURVEY RESPONSE
CLIENT (client1): SENDING DATE SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:13 2018" SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:13 2018" SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:13 2018" SURVEY RESPONSE
SERVER: ETIMEDOUT
SERVER: SURVEY COMPLETE
SERVER: SENDING DATE SURVEY REQUEST
CLIENT (client0): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client0): SENDING DATE SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:14 2018" SURVEY RESPONSE
CLIENT (client1): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client1): SENDING DATE SURVEY RESPONSE
CLIENT (client2): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client2): SENDING DATE SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:14 2018" SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:14 2018" SURVEY RESPONSE
SERVER: ETIMEDOUT
SERVER: SURVEY COMPLETE
SERVER: SENDING DATE SURVEY REQUEST
CLIENT (client0): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client2): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client1): RECEIVED "DATE" SURVEY REQUEST
CLIENT (client0): SENDING DATE SURVEY RESPONSE
CLIENT (client2): SENDING DATE SURVEY RESPONSE
CLIENT (client1): SENDING DATE SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:15 2018" SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:15 2018" SURVEY RESPONSE
SERVER: RECEIVED "Tue Sep 18 20:24:15 2018" SURVEY RESPONSE
[1]+  Terminated              ./survey server ipc:///tmp/survey.ipc