Dear Christoph, Thanks a lot for providing the solutions. For the first point of using the system gcc and boost: my system gcc (/usr/bin/gcc) version is 4.4.7 released in 2012, hence it is rather old. Also, I can not find (I don't know) where is the system boost header files although I can find the system boost library is in the /usr/lib64/ fold. Most importantly, as mentioned in my first post, when the boost paths are specified during the votca installation, it says can not find the required boost package. As a result, I haven't try this solution!
The second method of using another boost version with the same gcc compiler as votca: I actually using the default gcc to compile both Boost and Votca (which gcc --> /usr/local/bin/gcc gcc --version --> gcc (GCC) 6.1.0). So I think the gcc used to compile both BOOST and votca is the same. Using the default gcc, I now installed the BOOST 1.62.0 version. However, the "undefined reference" error still appears. For gcc 6.1, I checked it support the c++11 standard. For the third one: my system is Centos, it seems there is not votca install. Best Regards, Shiyun 在 2017年5月27日星期六 UTC+8上午12:22:32,Christoph Junghans写道: > > 2017-05-26 4:23 GMT-06:00 Shiyun Xiong <[email protected] <javascript:>>: > > > Dear Christoph, > > > > I have install the latest BOOST version 1.64.0. However, I have > encountered > > other errors: 'Make_array' is not a member of 'boost::serialization'. > Yup, boost 1.64.0 has a bug (see here: > <https://svn.boost.org/trac/boost/ticket/12516>), which has nothing to > do with VOTCA. 1.64 is very new release and hence not very well > tested. > > > In fact, I have used this version of BOOST at the beginning and this > error > > occured. Denis suggested me to downgrade my boost version and I found > from > > the votca website that 1.53 is a recommanded version. That's why I used > 1.53 > Ok, let me try to clarify. VOTCA works pretty much works with any gcc > and boost version (except may the above mentioned boost-1.64.0). > > However, VOTCA (from version 1.4on ) uses C++-11 features and hence > depends on C++-11 ABI. Unfortunately, <=gcc-4.9, gcc-5* and >=gcc-6 > have 3 different C++-11 ABIs and hence you will get the "undefined > reference" error from above when trying to link VOTCA against a boost, > which was built with a different C++-11 ABI. > > There are multiple solutions to that issue: > 1.) Use the system (NOT /usr/local) gcc and boost - usually the Linux > distributions get their thing together nicely. > 2.) Use a (non-buggy) boost version, which is compiled with SAME > compiler as you are compiling VOTCA with. > 3.) If you don't need the development version of VOTCA, just use the > package, which comes with your linux distributions - OpenSuse, Fedora, > Debian, Ubuntu have VOTCA packages. See > <https://github.com/votca/csg/wiki/Installing> > > Christoph > > > > > Attached are the on screen information and cmake error information. > Please > > check it. Thank you so much! > > > > Best regards, > > Shiyun > > > > > > 在 2017年5月24日星期三 UTC+8下午9:53:25,Christoph Junghans写道: > >> > >> 2017-05-24 2:00 GMT-06:00 Bensen-zjg Zhang <[email protected]>: > >> > Dear VOTCA developers and users, > >> > > >> > > >> > I am trying to install the VOTCA software with build.sh on Centos > system > >> > but > >> > encountered some errors. Before install votca, I have installed all > the > >> > dependencies: Boost, Git, GSL, FFTW3, EXPAT, PkgConfig, SQLITE3, > >> > Doxygen, > >> > Gromacs. The gcc version is 6.1.0 and the current boost version is > >> > 1.53.0. > >> > The installation command I used is: > >> > > >> > ./build.sh --prefix /usr/local/votca/ > >> > -DFFTW3_INCLUDE_DIR=/usr/local/fftw_shared/include/ > >> > -DFFTW3_LIBRARY=/usr/local/fftw_shared/lib/libfftw3.so --dev tools > csg > >> > kmc > >> > moo ctp ctp-tutorials ctp-manual > >> > > >> > With this building command, I got the following error information: > >> > /usr/local/lib/libboost_program_options.so: undefined reference to > >> > `std::__cxx11::basic_string<char, std::char_traits<char>, > >> > std::allocator<char> >::~basic_string()@GLIBCXX_3.4.21' > >> Errors like these usually mean your boost has been compiled with an > >> older (ABI-incompatible) version of gcc. > >> (I am guessing so, as you are using gcc-6.1 which relatively recent, > >> while boost-1.53 is actually more than 4 years old.) > >> > >> See the troubleshooting block of > >> > >> > https://gcc.gnu.org/onlinedocs/gcc-5.2.0/libstdc++/manual/manual/using_dual_abi.html > > >> for details. > >> > >> Just install a newer version of boost using your gcc-6.1 and have > >> VOTCA compile against that one. > >> > >> Christoph > >> > >> > >> > >> > /usr/local/lib/libboost_program_options.so: undefined reference to > >> > `std::logic_error::logic_error(std::__cxx11::basic_string<char, > >> > std::char_traits<char>, std::allocator<char> > > const&)@GLIBCXX_3.4.21' > >> > /usr/local/lib/libboost_program_options.so: undefined reference to > >> > `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, > >> > std::allocator<wchar_t> >::~basic_string()@GLIBCXX_3.4.21' > >> > /usr/local/lib/libboost_program_options.so: undefined reference to > >> > `operator > >> > delete(void*, unsigned long)@CXXABI_1.3.9' > >> > /usr/local/lib/libboost_program_options.so: undefined reference to > >> > `std::__cxx11::basic_string<char, std::char_traits<char>, > >> > std::allocator<char> >::_M_replace(unsigned long, unsigned long, char > >> > const*, unsigned long)@GLIBCXX_3.4.21' > >> > /usr/local/lib/libboost_program_options.so: undefined reference to > >> > `std::__cxx11::basic_string<char, std::char_traits<char>, > >> > std::allocator<char> >::find(char const*, unsigned long, unsigned > long) > >> > const@GLIBCXX_3.4.21' > >> > /usr/local/lib/libboost_filesystem.so: undefined reference to > >> > `std::__cxx11::basic_string<char, std::char_traits<char>, > >> > std::allocator<char> >::rfind(char, unsigned long) > const@GLIBCXX_3.4.21' > >> > collect2: ld returned 1 exit status > >> > make[2]: *** [src/tools/votca_property] Error 1 > >> > make[1]: *** [src/tools/CMakeFiles/votca_property.dir/all] Error 2 > >> > make: *** [all] Error 2 > >> > > >> > When searching from the previous discussions, I found that I may need > to > >> > specify the Boost path. As a result, I tried: > >> > > >> > ./build.sh --prefix /usr/local/votca/ > >> > -DFFTW3_INCLUDE_DIR=/usr/local/fftw_shared/include/ > >> > -DFFTW3_LIBRARY=/usr/local/fftw_shared/lib/libfftw3.so > >> > -DBoost_INCLUDE_DIR=/usr/local/include/boost/ > >> > > >> > > -DBoost_PROGRAM_OPTIONS_LIBRARY=/usr/local/lib/libboost_program_options.so > >> > -DBoost_FILESYSTEM_LIBRARY=/usr/local/lib/libboost_filesystem.so > --dev > >> > tools > >> > csg kmc moo ctp ctp-tutorials ctp-manual > >> > > >> > > >> > This time, votca can not find the boost package? I have no idea why > it > >> > can > >> > not find boost since I have specified the path to it! > >> > For more information, I have attached the entire on screen printed > >> > information and the cmake error file. The file names with > "_noBoostPath" > >> > correspond to the first building command (no boost path is specified) > >> > while > >> > the file names with "_withBoostPath" correspond to the second > building > >> > command. > >> > > >> > By the way, when using the second building command, votca find both > GSL > >> > and > >> > MKL libraries, so I have also tried to disable the mkl library with > >> > -DCMAKE_DISABLE_FIND_PACKAGE_MKL=ON, but not change happens. > >> > > >> > Thank you very much for your kind help! > >> > With best regards, > >> > Shiyun > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups > >> > "votca" group. > >> > To unsubscribe from this group and stop receiving emails from it, > send > >> > an > >> > email to [email protected]. > >> > To post to this group, send email to [email protected]. > >> > Visit this group at https://groups.google.com/group/votca. > >> > For more options, visit https://groups.google.com/d/optout. > >> > >> > >> > >> -- > >> Christoph Junghans > >> Web: http://www.compphys.de > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "votca" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to [email protected] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > Visit this group at https://groups.google.com/group/votca. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > Christoph Junghans > Web: http://www.compphys.de > -- You received this message because you are subscribed to the Google Groups "votca" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/votca. For more options, visit https://groups.google.com/d/optout.
