天天看點

安裝zeroMQ以及error while loading shared librarie找不多對應so檔案的錯誤解決

從官網下載下傳源碼包zeromq-4.2.1.tar.gz,tar解壓,進入檔案夾

```

# yum install libtool

```

要執行./autogen.sh,是以要安裝依賴庫

```

# ./autogen.sh 

```

自動生成安裝檔案

提示

error: Autoconf version 2.64 or higher is required

這是因為我的autoconf的版本不夠,又下載下傳安裝了2.64版本的autoconf。

重新執行通過

```

#./configure

``` 

檢查各種環境,我的機器上提示

configure: error: Unable to find a working C++ compiler

沒有c++編譯器,使用yum install gcc-c++,安裝g++完成

重新執行通過

```

#make

#make install

```

使用官方測試的C語言代碼(其它語言的應該要安裝對應語言的庫),分别編譯:

```

# gcc hw_server_c.c -o hw_server -lzmq

# gcc hw_client_c.c -o hw_client -lzmq

```

執行

```

# ./hw_server

```

./hw_server: error while loading shared libraries: libzmq.so.5: cannot open shared object file: No such file or directory

提示的錯誤是加載動态庫找不到對應檔案,之前安裝的時候沒有配置安裝位址,找一下動态檔案安裝到哪裡了:

```

# whereis libzmq.so.5

```

libzmq.so: /usr/local/lib/libzmq.so.5 /usr/local/lib/libzmq.so

##可以使用兩種方法讓程式找到該動态庫:

方法1:

将/usr/local/lib加到共享庫配置檔案/etc/ld.so.conf中,該方法一勞永逸,但是需要有操作權限

```

# cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

# echo "/usr/local/lib">>/etc/ld.so.conf

# ldconfig

```

再執行./hw_server成功

方法2:設定環境變量LD_LIBRARY_PATH,适合沒有操作權限時使用

```

# vi ~/.bash_profile 

```

編輯你目前使用者的使用者目錄下的.bash_profile檔案

在檔案後面加上:

```

export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH

```

儲存并關閉檔案

```

# source ~/.bash_profile 

```

使該檔案改動生效(每次登入該使用者時也會自動加載該檔案,使檔案生效)

執行./hw_server成功

執行./hw_server

另外開一個終端執行./hw_client

看到兩端互動過程,完成zeroMQ初體驗。

繼續閱讀