Проблема при использовании объектного файла C (.o) на разных компьютерах - PullRequest
2 голосов
/ 25 октября 2009

Я пытаюсь создать объектный файл, который можно использовать на любом компьютере. Итак, я сделал несколько функций и поместил их в файл .c. Использовал gcc -c myfile.c, который выдает myfile.o. (Я использую Windows XP и получил gcc от DevC ++) Затем я создаю другую программу, которая использует мой объектный файл.

Все выглядит нормально, за исключением случаев, когда я пытаюсь скопировать файл .o и использовать его на другом ПК. Когда я копирую свой файл, который использует объектный файл, компилирует его и запускает, он просто дает окно, которое информирует меня об ошибке и, если я хочу отправить ему отчет об ошибке.

Когда я пытаюсь перекомпилировать файл .c моего объектного файла на другом ПК и перезапустить программу, это похоже на работу.

Так что я не понимаю, почему я не могу просто скомпилировать файл .o один раз на одном компьютере, скопировать его на другой компьютер и создать программу, использующую тот же объектный файл, без необходимости перекомпиляции объектного файла.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 25 октября 2009

Скорее всего, это потому, что вы используете разные библиотеки Си. Попробуйте использовать одинаковую версию gcc, установленную из одного пакета, на всех компьютерах.

Итак, вы используете версию gcc из DevC ++, не смешивайте ее с другими пакетами gcc, как MinGW.

1 голос
/ 25 октября 2009

Почему бы вам не заняться созданием разделяемой библиотеки для перемещения объектного кода? (.so или .dll)

...