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上的过程。

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