您的位置:首页 > 其它

Ubuntu 12.04下用g++编译cplex实例程序,配置、出现的问题,解决办法

2013-02-18 13:12 1436 查看
比如我要编译的实例程序为ilomipex1.cpp。

编译:g++ -I/home/stan/cplex/opl/include -DIL_STD ilomipex1.cpp -c;

-DIL_STD选项的作用是为了兼容旧版本的#include <iostream.h>出现的问题。

链接:g++ -L/home/stan/cplex/concert/lib/x86_sles10_4.1/static_pic -L/home/stan/cplex/cplex/lib/x86_sles10_4.1/static_pic ilomipex1.o -o ilomipex1 -lilocplex -lcplex -lconcert -lm -lpthread。。

Ubuntu g++编译cplex,加载链接库的顺序必须为: -lilocplex -lcplex -lconcert,而且要放在命令的最后部分,否则会提示undefined reference to cplexsomething。这点非常非常重要。。

至于网上有些人说链接不通过是因为g++版本太高,我的g++版本是4.5.2,链接没有问题。。

我也试着去安装过低版本的g++,如g++-3.3,版本太低,链接失败,同样出现以下错误:

/home/stan/workspace/libilocplex.a(ilocplex.o): In function `IloCplexI::IloCplexI[in-charge](IloEnvI*, bool, cpxenv* (*)(char const*, int, char const* const*, int*), char const*, int, char const* const*)':

ilocplex.cpp:(.text+0x1ea22): undefined reference to `__cxa_get_exception_ptr'

/home/stan/workspace/libilocplex.a(ilocplex.o): In function `IloCplexI::IloCplexI[not-in-charge](IloEnvI*, bool, cpxenv* (*)(char const*, int, char const* const*, int*), char const*, int, char const* const*)':

ilocplex.cpp:(.text+0x2d0b6): undefined reference to `__cxa_get_exception_ptr'

/home/stan/workspace/libilocplex.a(ilodeflpextr.o): In function `IloDefaultLPExtractor::applySetNames(IloSetNameArrayChange const*, void**)':

ilodeflpextr.cpp:(.text+0x8e8): undefined reference to `__cxa_get_exception_ptr'

/home/stan/workspace/libilocplex.a(ilodeflpextr.o): In function `IloDefaultLPExtractor::doextractObj(IloObjectiveI const*, double&)':

ilodeflpextr.cpp:(.text+0x55b1): undefined reference to `__cxa_get_exception_ptr'

/home/stan/workspace/libconcert.a(iloalg.o): In function `IloAlgorithmI::apply(IloChange const&, IloExtractableI const*)':

iloalg.cpp:(.text+0x6637): undefined reference to `__cxa_get_exception_ptr'

/home/stan/workspace/libconcert.a(iloalg.o):iloalg.cpp:(.text+0x6760): more undefined references to `__cxa_get_exception_ptr' follow

/home/stan/workspace/libconcert.a(iloenv.o): In function `IloGetString(std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&)':

iloenv.cpp:(.text+0xc96c): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

iloenv.cpp:(.text+0xc9e9): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

iloenv.cpp:(.text+0xca12): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

iloenv.cpp:(.text+0xca27): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

/home/stan/workspace/libconcert.a(iloenv.o): In function `IloEnvI::change(IloExtractableI const*, IloChange const&)':

iloenv.cpp:(.text+0xcb24): undefined reference to `__cxa_get_exception_ptr'

iloenv.cpp:(.text+0xcbb3): undefined reference to `__cxa_get_exception_ptr'

/home/stan/workspace/libconcert.a(iloenv.o): In function `IloEnvI::change(IloChange const&)':

iloenv.cpp:(.text+0xcdee): undefined reference to `__cxa_get_exception_ptr'

iloenv.cpp:(.text+0xce71): undefined reference to `__cxa_get_exception_ptr'

/home/stan/workspace/libconcert.a(iloenv.o):(.data.rel.ro._ZTV13IloPrivateBuf[vtable for IloPrivateBuf]+0x18): undefined reference to `std::basic_streambuf<char, std::char_traits<char> >::seekoff(long long, std::_Ios_Seekdir, std::_Ios_Openmode)'

/home/stan/workspace/libconcert.a(ilocollectionstruct.o): In function `IloOperatorException::getOperatorName() const':

ilocollectionstruct.cpp:(.text+0x158a): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x15a3): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

ilocollectionstruct.cpp:(.text+0x165f): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x1678): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

/home/stan/workspace/libconcert.a(ilocollectionstruct.o): In function `IloDataCollection::ImmutableException::getMessage() const':

ilocollectionstruct.cpp:(.text+0x184b): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x1864): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

ilocollectionstruct.cpp:(.text+0x1978): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x1991): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

/home/stan/workspace/libconcert.a(ilocollectionstruct.o): In function `IloIndexOutOfBoundsException::getMessage() const':

ilocollectionstruct.cpp:(.text+0x1b0f): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x1b28): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

ilocollectionstruct.cpp:(.text+0x1c3c): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x1c55): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

/home/stan/workspace/libconcert.a(ilocollectionstruct.o): In function `IloFirstLastElementNotFoundException::getMessage() const':

ilocollectionstruct.cpp:(.text+0x1dc0): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x1dd9): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

ilocollectionstruct.cpp:(.text+0x1e95): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x1eae): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

/home/stan/workspace/libconcert.a(ilocollectionstruct.o): In function `IloFirstLastElementNotFoundException::getOperatorName() const':

ilocollectionstruct.cpp:(.text+0x2098): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x20b1): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

ilocollectionstruct.cpp:(.text+0x216d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

ilocollectionstruct.cpp:(.text+0x2186): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

/home/stan/workspace/libconcert.a(evaluator.o): In function `IloModelEvaluator::Unbound::getMessage() const':

evaluator.cpp:(.text+0x1767): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

evaluator.cpp:(.text+0x1780): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

evaluator.cpp:(.text+0x1894): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'

evaluator.cpp:(.text+0x18ad): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'

collect2: ld returned 1 exit status

成功的执行结果如下:

stan@stan-desktop:~/workspace$ ./ilomipex1

IBM ILOG CPLEX Optimization Studio Preview Edition good for 74 more days.

The CPLEX Optimizers will solve problems up to 500 variables and 500 constraints.

Tried aggregator 2 times.

MIP Presolve eliminated 0 rows and 1 columns.

Aggregator did 1 substitutions.

Reduced MIP has 2 rows, 3 columns, and 6 nonzeros.

Reduced MIP has 0 binaries, 1 generals, 0 SOSs, and 0 indicators.

Presolve time = 0.00 sec. (0.01 ticks)

Found incumbent of value 34.000000 after 0.01 sec. (0.01 ticks)

Probing time = 0.00 sec. (0.00 ticks)

Tried aggregator 1 time.

Presolve time = 0.00 sec. (0.00 ticks)

Probing time = 0.00 sec. (0.00 ticks)

MIP emphasis: balance optimality and feasibility.

MIP search method: dynamic search.

Parallel mode: deterministic, using up to 2 threads.

Root relaxation solution time = 0.00 sec. (0.00 ticks)

Nodes Cuts/

Node Left Objective IInf Best Integer Best Bound ItCnt Gap

* 0+ 0 34.0000 163.0000 3 379.41%

0 0 125.2083 1 34.0000 125.2083 3 268.26%

* 0+ 0 122.5000 125.2083 3 2.21%

0 0 cutoff 122.5000 3 0.00%

Elapsed time = 0.03 sec. (0.04 ticks, tree = 0.00 MB, solutions = 2)

Root node processing (before b&c):

Real time = 0.03 sec. (0.02 ticks)

Parallel b&c, 2 threads:

Real time = 0.00 sec. (0.00 ticks)

Sync time (average) = 0.00 sec.

Wait time (average) = 0.00 sec.

------------

Total (root+branch&cut) = 0.03 sec. (0.02 ticks)

Solution status = Optimal

Solution value = 122.5

Values = [40, 10.5, 19.5, 3]

Slacks = [0, 2, 0]

Default variable names x1, x2 ... being created.

Default row names c1, c2 ... being created.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐