Возможная ошибка компоновщика при выполнении программы на внешней Unix-машине


person BillyJean    schedule 04.04.2013    source источник
comment
Почему бы не попробовать явное динамическое связывание?   -  person bash.d    schedule 04.04.2013
comment
@ bash.d Спасибо за предложение. Как я могу сказать своему компилятору, что я этого хочу?   -  person BillyJean    schedule 04.04.2013
comment
Обычно это происходит автоматически; кажется, что на целевой машине нет той же библиотеки, что и у вас. Возможно, вам поможет это   -  person bash.d    schedule 04.04.2013


Ответы (2)


Это довольно стандартный пример компиляции для одной версии библиотеки времени выполнения C и попытки запустить ее для другой. Статическая компиляция должна помочь.

person metalhead    schedule 04.04.2013
comment
Я попытался добавить -static, и теперь я получаю сообщение об ошибке FATAL: Kernel too old.. segmentation fault. - person BillyJean; 04.04.2013
comment
Боюсь, вам нужно будет сопоставить среду вашего университетского сервера на вашей машине с Ubuntu и скомпилировать ее, чтобы она работала. Убедитесь, что архитектуры совместимы (32- и 64-разрядные). Не проще ли было бы перенести код на университетскую машину и построить его там? - person metalhead; 04.04.2013
comment
Я использую библиотеку Boost на своем домашнем компьютере с Ubuntu. Я очень сомневаюсь, что на университетском сервере есть это :-(. Означает ли это, что университетский сервер также должен запускать Ubuntu 12.10, чтобы это работало? Или это что-то, связанное только с библиотеками C++? - person BillyJean; 04.04.2013
comment
Неа. Перекомпилируйте в новой среде. Если библиотека C изменится несовместимым образом, это наверняка приведет к многому более глубоким проблемам. - person vonbrand; 05.04.2013
comment
Если он не установлен на университетском сервере, вы можете установить его в своем домашнем каталоге или загрузить исходный код и собрать его самостоятельно. Это будет проще, чем пытаться использовать программное обеспечение, созданное на Ubuntu, для работы на RHEL (или на чем-то еще, что работает в вашем университете). - person metalhead; 05.04.2013

Вы добавили -static при сборке?

person Community    schedule 04.04.2013
comment
Единственное, что я сделал, это добавил -static-libstdc++ в настройки компоновщика моей IDE (CodeBlocks). - person BillyJean; 04.04.2013