すぐ忘れるのでメモ

c++初心者です

gurobi10.03でc++

g++-9 -m64 -g -o mip1_c++ ../c++/mip1_c++.cpp -I/opt/gurobi1003/linux64/include -L/opt/gurobi1003/linux64/lib -lgurobi_c++ -lgurobi100 -lm

とすると

/usr/bin/ld: /tmp/ccF9f4Jr.o: in function `main':
/home/tom/Dropbox/research/gurobi/examples/c++/../c++/mip1_c++.cpp:22:(.text+0xac): undefined reference to `GRBEnv::set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /home/saito/Dropbox/research/gurobi/examples/c++/../c++/mip1_c++.cpp:29:(.text+0x169): undefined reference to `GRBModel::addVar(double, double, double, char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'

というエラーが出た. g++のバージョンが新しい場合,libgurobi_g++5.2.a を使うらしい.上記で指定している libgurobi_c++.a はlibgurobi_g++4.8.a のリンク.

ls -l /opt/gurobi1003/linux64/lib/libgurobi_c++.a 
lrwxrwxrwx 1 5075 501 20 Sep  6 11:15 /opt/gurobi1003/linux64/lib/libgurobi_c++.a -> ./libgurobi_g++4.8.a

以下,設定をメモ .barhrcに書いたこと.

export GUROBI_HOME=/opt/gurobi1003/linux64
export PATH=$GUROBI_HOME/bin:$PATH
export LD_LIBRARY_PATH=$GUROBI_HOME/lib:$LD_LIBRARY_PATH
export GRB_LICENSE_FILE=/home/tom/gurobi.lic