Как исправить испорченную систему компиляции - PullRequest
0 голосов
/ 24 мая 2019

На всех других машинах у меня нет ошибок, но только на машине centos7.6 следующий простой код дает ошибку.

Не зная, в чем причина проблемы, как я могу вернуть систему?

#include <fstream>

int main()
{
        std::ifstream file;
        file.open("in.txt", std::ifstream::in);
        return 0;
}
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

$ g++ --version
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)

$ ldd --version
ldd (GNU libc) 2.17

$ g++ a.cc
/tmp/cckbAM5c.o: In function `std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf()':
a.cc:(.text._ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev[_ZNSt13basic_filebufIcSt11char_traitsIcEEC5Ev]+0x46): undefined reference to `std::__basic_file<char>::__basic_file(int*)'
/tmp/cckbAM5c.o: In function `std::basic_filebuf<char, std::char_traits<char> >::seekoff(long long, std::_Ios_Seekdir, std::_Ios_Openmode)':
a.cc:(.text._ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode[_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode]+0x1d8): undefined reference to `std::__basic_file<char>::seekoff(long long, std::_Ios_Seekdir)'
/tmp/cckbAM5c.o: In function `std::basic_filebuf<char, std::char_traits<char> >::_M_seek(long long, std::_Ios_Seekdir, __mbstate_t)':
a.cc:(.text._ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t[_ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t]+0x54): undefined reference to `std::__basic_file<char>::seekoff(long long, std::_Ios_Seekdir)'
collect2: error: ld returned 1 exit status
...