歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS 5.4 x86_64上安裝simspark筆記

CentOS 5.4 x86_64上安裝simspark筆記

日期:2017/2/28 16:20:33   编辑:Linux教程

在CentOS 5.4 x86_64上面 安裝simspark出現了一些以前沒有遇到的小狀況,記錄下來,也許對自己和其他人有用。

這裡的simspark使用的是SVN repo上面下的最新源碼。

  1. 在編譯SPADES的時候出現ld也就是鏈接錯誤(ld: could not read symbol: file in wrong format),經過上網查找知道這是因為鏈接的.o文件在不同的平台下編譯的問題。而錯誤出在expat有兩個版本,分別是i386和x86_64版本,應該只要使SPADES能找到x86_64的版本就可以。我用的是一種比較土鱉的方法,就是把32位的動態鏈接庫放在一個spades找不到的地方,然後spades就可以找到64位的版本了。其實實質應該是去了解autoconfig的用法的,不過時間有點緊。所以…………
  2. 在編譯spark的時候出現RSTRING_PTR,RSTRING_LEN,RARRAY_PTR,RARRAY_LEN沒有定義的問題。原因是CentOS的ruby裡面的頭文件ruby.h裡面沒有定義這幾個變量。查看最新版本的ruby.h在相應的位置補上就可以。
  3. 在配置spark的時候提示boost的regex和thread頭文件找不到,原因是CentOS自帶的boost庫貌似是沒有這一個庫的。解決的方法是自己下一個boost的庫的源代碼,然後編譯(在simspark的wiki說不用編譯,其實是需要的,不然沒有相關的鏈接庫)。編譯完之後把文件夾,這裡假設boost解壓後的文件夾為boost_1_33_1,這樣把這個文件夾放到喜歡的地方,假設放在/usr/local/裡面,然後在cmake spark的時候,用以下的語句配置:cmake -D BOOST_ROOT=/usr/local/boost_1_33_1/ . 。這樣就可以讓cmake找到boost所在的地方。配置rcssserver3d的時候也是同樣的。
  4. 在編譯spark的時候出現ode.a: could not read symbol: bad value。錯誤提示用-fPIC標志重新編譯庫。上網找了找,原來是需要-fPIC的標志重新編譯ode,具體的解釋貌似是和體系結構的代碼重定位有關,可以看這裡http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html 的-fPIC的解釋。在重新編譯之後,www.linuxidc.com我還把ode的庫的位置更改在/usr/lib64裡面,不知道這個和後面的成功編譯有沒有關系。在重新編譯了ODE之後,spark終於成功編譯。
  5. 在安裝了spark和rcssserver3d之後,啟動rcssserver3d的時候出現(InputServer) ERROR: no InputSystem installed的錯誤信息,這是由於rcssserver3d在0.6.3之後在initscrpt裡面去掉了internal monitor的啟動,而這個信息就是由於這個monitor沒有啟動引起的。其實這並不是一個錯誤,實際上server已經正常的啟動了,如果這個時候另外再連接rcssmonitor3d的話,就可以看見和之前版本一樣的畫面。這個誤導性的錯誤輸出不知道在最新的0.6.4裡面有沒有修正。

安裝總結:

  1. 這次安裝裡由於是在64位系統上安裝,出現了一些之前沒有出現的情況,例如在編譯的時候出現了ld的bad value錯誤。
  2. 在./configure的時候,可以設定一些參數值,具體用法可以看./configure --help。例如./configure CXXFLAGS=/usr/local
  3. 64位系統裡面用的庫有/lib64和/usr/lib64等等。
Copyright © Linux教程網 All Rights Reserved