Как скомпилировать простой исходный файл с GCC в Linux - PullRequest
4 голосов
/ 27 декабря 2010

Я пытаюсь скомпилировать набор исходных файлов на C в Linux (Ubuntu). Когда я пытаюсь выполнить следующую команду, я получаю сообщение об ошибке «ruby.h» не найден.

gcc custom_ext.c

Это давало мне следующее сообщение об ошибке.

custom_ext.h:10: fatal error: ruby.h: No such file or directory

Итак, я скачал весь исходный код Ruby и поместил его в пустой каталог /home/braga/ruby_source/ruby_1_8_7. Я знаю, что мне нужно включить этот каталог в путь, чтобы GCC смог идентифицировать и получить ruby.h, но я понятия не имею, как это сделать. Пожалуйста, помогите !!!

Ответы [ 4 ]

7 голосов
/ 27 декабря 2010

Вы установили пакет "ruby-dev"?

Все, что вам нужно, это установить пакеты из репозитория Ubuntu (используя «apt-get», «aptitude» или любой другой интерфейс менеджера пакетов). Нет необходимости в загрузке источников. Установка пакета поместит все требуемые заголовки и библиотеки в стандартные каталоги, поэтому вам не придется иметь дело с ключами компилятора.

И только если у вас нет необходимых пакетов в репозиториях (или они очень старые), вам придется загружать архивы с исходным кодом и УСТАНОВИТЬ их (соответственно, они включены в инструкции по архивированию, часто в файле INSTALL).

1 голос
/ 27 декабря 2010

-Я тебе помогу.Добавьте путь, который вы получите, используя find / -name ruby.h. Это может быть отправной точкой, и вам может понадобиться добавить больше путей, чтобы успешно компилировать

1 голос
/ 27 декабря 2010

Поскольку вы, похоже, пытаетесь скомпилировать расширение Ruby, этот вопрос может быть вам полезен. Обратите внимание, что скачивать исходные коды или взламывать что-либо вручную - плохая идея. Для этого всегда есть официальный и удобный способ сделать это. Если вы обнаружили, что кладете файлы в случайные места, остановитесь на некоторое время и убедитесь, что вы не делаете что-то не так.

Кроме чисто соображений удобства, все же лучше установить все соответствующие пакеты разработки из хранилища, поскольку загруженные вами заголовки могут не соответствовать двоичным библиотекам, с которыми вы планируете ссылаться. Если они этого не делают, и если они не совместимы с двоичными файлами, вы попадаете в большие проблемы. Команды apt-file search и apt-cache search очень полезны для определения нужного вам имени пакета.

1 голос
/ 27 декабря 2010

-I /home/braga/ruby_source/ruby_1_8_7.Скорее всего, ruby.h живет в некотором подкаталоге этого, поэтому вам придется его найти и использовать путь к этому каталогу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...