Ubuntu(Linux)安裝concorde過程

前瞻:

這是對前面博客的補充

完整的過程個人已經在Ubuntu上實現了,現在用docker rocker/rstudio(linux)再實現一次,完整記錄整個過程。

當然,大部分過程參見官方Installation guide,部分額外的詳細描述。

過程:

  1. 在自己的目錄下下載並解壓concorde壓縮包

     

  2. (重要)concorde需要linear programming solver,常用的有QSOpt和IBM的CPLEX,鑑於concorde自從2003年就沒有更新過,CPLEX現在的版本已經不再合適,故選用QSOpt。過程見如下代碼和圖,最後qsopt的路徑path=/home/kaiyouhu/qsopt
    mkdir qsopt
    cd qsopt
    wget http://www.math.uwaterloo.ca/~bico/qsopt/beta/codes/linux64/qsopt.a
    wget http://www.math.uwaterloo.ca/~bico/qsopt/beta/codes/linux64/qsopt.h
    wget http://www.math.uwaterloo.ca/~bico/qsopt/beta/codes/linux64/qsopt

     

  3. 執行如下代碼即可完成。

    ./configure --with-qsopt=/home/kaiyouhu/qsopt
    make
  4. 測試(以上過程在Ubuntu16.04 gcc 5.4上實現無問題)

    ./concorde -s 99 -k 100

     

翻車:(在docker上Debian gcc6.3環境)

(大家就當沒看見)問題出現在-fPIC上面,前面wsl的gcc --version

後面docker容器的gcc --version

問題大概是不同版本的gcc對靜態庫打包的區別。如果出現這樣的問題。

解決辦法:

首先是qsopt要換,情況如下:

注意:下面的qsopt.PIC.a下載後改名成qsopt.a

wget -O qsopt.a http://www.math.uwaterloo.ca/~bico/qsopt/beta/codes/PIC/qsopt.PIC.a

然後,configure的具體命令如下

CFLAGS="-fPIC -O2 -g" ./configure --with-qsopt=/home/kaiyouhu/qsopt
# continue
make
cd TSP
./concorde -s 99 -k 100

其他的同Ubuntu16上的過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章