我在集羣上安裝了兩個版本的boost。舊的位於標準位置,而新位置位於我的主目錄中。由於我沒有su特權,我不能刪除舊特權。我出口環境變量提升(和其它庫),如下所示:兩個升級版本之間的衝突
在/ usr/bin中/ LD:在連接階段
export PATH=/truba/home/osibliyev/boost/bin:$PATH export LD_LIBRARY_PATH=/truba/home/osibliyev/boost/lib:$LD_LIBRARY_PATH export LIBRARY_PATH=/truba/home/osibliyev/boost/lib:$LIBRARY_PATH export CPLUS_INCLUDE_PATH=/truba/home/osibliyev/boost/include:$CPLUS_INCLUDE_PATH
與
make
編譯後,我得到以下錯誤警告:libboost_serialization.so.1.64.0,需要 /truba/home/osibliyev/boost/lib/libboost_mpi.so,可能與 衝突libboost_serialization.so.1.53.0/usr/bin/ld:loadmap.o:undefined 參考符號'_ZN5boost7archive17archive_exceptionC2ERKS1_' /truba/home/osibliyev/boost/lib/l ibboost_serialization.so.1.64.0: 錯誤添加符號:DSO命令行
lboost_serialization
已添加到LDADD
丟失:
LDADD = -lmetis -lmpi -lboost_mpi -lboost_serialization -lboost_log -lboost_log_setup -lboost_thread -lpthread -lboost_date_time -lboost_filesystem -lboost_system -lboost_timer
我有點確保誤差是因爲衝突因爲其他圖書館鏈接沒有問題,只會增加抱怨。這不會發生在我的機器上只有一個增強版本。我能做些什麼來解決這個錯誤?
如果你搜索_DSO從命令line_缺少這樣,你得到了一組可能的答案。你有沒有讀過它們?這看起來很像一個重複的問題。 [這裏](https://stackoverflow.com/q/15634114/4987285)是一個也許可以幫助你。 – skypjack
@skypjack是的,我搜索了類似的問題,但他們沒有解決我的問題。除了問題只發生在羣集而不是我的電腦。這讓我覺得問題是存在兩個升級版本,但不知道如何擺脫舊版本。 – Shibli
問題是沒有獲得舊版本的rif,而是選擇新版本。據我所知,你所描述的環境變量中沒有一個會產生這種效果。相反,您希望在指定Boost庫的任何'-l'選項之前,將'-L/truba/home/osibliyev/boost/lib'選項添加到'LDADD'。但是,您將在* run *時間需要'LD_LIBRARY_PATH'。 –