У меня проблема, я компилирую свое приложение C ++ на машине Linux. Затем я перемещаю исполняемый файл на другую машину, но у меня есть ошибка:
./server: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by ./server)
Как я могу это исправить? Без перекомпиляции на втором компьютере, где происходит эта ошибка (это мой клиентский компьютер)
Команда компиляции:
g++ -o server test.cpp server.cpp ... -lboost_system -lboost_thread -std=c++0x
Спасибо!
Ваше приложение использует библиотеку glibc-2.7, и приложение не может найти ее на другом компьютере. Вероятно, есть более старая версия этой библиотеки. У вас есть следующие варианты:
Как статически ссылаться только на одну библиотеку:
gcc main.c mylibrary.a -o main
Обратите внимание, что большинство дистрибутивов не устанавливают статические библиотеки по умолчанию.
Есть три варианта:
-static
передается компилятору, который будет включать соответствующие библиотеки в ваш двоичный файл [и, возможно, даст вам одно или два предупреждения о том, что «это может работать неправильно»]Я склонен использовать вариант 1 большую часть времени, но использовал все три в разных точках.