Что такое crto.o и crtn.o?
Модератор: Модераторы
Что такое crto.o и crtn.o?
Возможно "идиотский" вопрос, но прошу прощения, т.к. работая под Windows с этим не сталкивался, а на днях поставил в VirtualBox Ubuntu 12.04 и Ubuntu 14.04 и при компиляции любого проекта выдаёт вот такие сообщения:
Warning: crti.o not found, this will probable coust a linking failure.
Warning: crtn.o not found, this will probable coust a linking failure.
Я понял так, что не найдены эти файлы и в чём-то будет отказано. Если кто может, объясните, что это за файлы, в чём мне будет отказано, чем это чревато и как убрать это предупреждение.
Заранее спасибо.
Warning: crti.o not found, this will probable coust a linking failure.
Warning: crtn.o not found, this will probable coust a linking failure.
Я понял так, что не найдены эти файлы и в чём-то будет отказано. Если кто может, объясните, что это за файлы, в чём мне будет отказано, чем это чревато и как убрать это предупреждение.
Заранее спасибо.
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Эти файлы являются частью пакета libc6-dev, который нужно установить, чтобы собиралось что-то сложнее чем hello world. Вообще, нужны -dev пакеты от всех используемых библиотек, с учетом архитектуры (libc6-dev:amd64 либо libc6-dev:i386). В этом заключается основное отличие линукса от винды 
Сергей, спасибо!
Нашёл на сайте http://packages.ubuntu.com/precise/i386/libc6-dev/download пакет libc6-dev_2.15-0ubuntu10.15_i386.deb.
Это то, что надо?
Нашёл на сайте http://packages.ubuntu.com/precise/i386/libc6-dev/download пакет libc6-dev_2.15-0ubuntu10.15_i386.deb.
Это то, что надо?
Если Вы не занимаетесь кросс компиляцией, то лучше воспользуйтесь пакетным менеджером (на примере apt) и поставьте вот так:
Ну и даже при кросс компиляции, проще вначале установить (к примеру в виртуалку) систему, а потом уже пользоваться всеми полученными в виртуалке файлами.
Код: Выделить всё
sudo apt-get install libc6-devНу и даже при кросс компиляции, проще вначале установить (к примеру в виртуалку) систему, а потом уже пользоваться всеми полученными в виртуалке файлами.
Wavebvg, спасибо!
Так libc6-dev уже есть в Ubuntu или всё-таки устанавливать скаченный пакет?
И по большому счёту, а для чего вообще нужен этот пакет и что он делает?
Добавлено спустя 10 минут 42 секунды:
Извините, ещё вопрос.
Если я собираю на машине i386, а использовать собираюсь на машине AMD или Raspberry Pi с ОС Raspbian, то этот пакет надо устанавливать в пользовательскую машину или он нужен только при сборке?
Добавлено спустя 2 часа 33 минуты 6 секунд:
После установке пакета
sudo apt-get install libc6-dev
выше приведённное предупреждение остаётся, а при установке пакета:
sudo dpkg -i libc6-dev_2.15-0ubuntu10.15_i386.deb
возникает ошибка:
Версия libc-dev-bin в системе 2.15-0ubuntu10.6.
dpkg: не удалось обработать параметр libc6-dev (--install):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
libc6-dev
Добавлено спустя 1 секунду:
После установке пакета
sudo apt-get install libc6-dev
выше приведённное предупреждение остаётся, а при установке пакета:
sudo dpkg -i libc6-dev_2.15-0ubuntu10.15_i386.deb
возникает ошибка:
Версия libc-dev-bin в системе 2.15-0ubuntu10.6.
dpkg: не удалось обработать параметр libc6-dev (--install):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
libc6-dev
Добавлено спустя 5 минут 40 секунд:
После установке пакета
sudo apt-get install libc6-dev
выше приведённное предупреждение остаётся, а при установке пакета:
sudo dpkg -i libc6-dev_2.15-0ubuntu10.15_i386.deb
возникает ошибка:
Версия libc-dev-bin в системе 2.15-0ubuntu10.6.
dpkg: не удалось обработать параметр libc6-dev (--install):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
libc6-dev
И всеравно при компиляции то же самое предупреждение:
project1.lpr(20,1) Warning: "crti.o" not found, this will probably cause a linking failure
project1.lpr(20,1) Warning: "crtn.o" not found, this will probably cause a linking failure
Что делать?
Добавлено спустя 10 минут 28 секунд:
Извините, но сегодня "криво" работает интернет. Однако, хочу разобраться с причиной и возможностью устранения выше сказанного. К сожалению, самостоятельно не могу, поэтому обращаюсь за помощью. Заранее всем ответившим большое спасибо.
Так libc6-dev уже есть в Ubuntu или всё-таки устанавливать скаченный пакет?
И по большому счёту, а для чего вообще нужен этот пакет и что он делает?
Добавлено спустя 10 минут 42 секунды:
Извините, ещё вопрос.
Если я собираю на машине i386, а использовать собираюсь на машине AMD или Raspberry Pi с ОС Raspbian, то этот пакет надо устанавливать в пользовательскую машину или он нужен только при сборке?
Добавлено спустя 2 часа 33 минуты 6 секунд:
После установке пакета
sudo apt-get install libc6-dev
выше приведённное предупреждение остаётся, а при установке пакета:
sudo dpkg -i libc6-dev_2.15-0ubuntu10.15_i386.deb
возникает ошибка:
Версия libc-dev-bin в системе 2.15-0ubuntu10.6.
dpkg: не удалось обработать параметр libc6-dev (--install):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
libc6-dev
Добавлено спустя 1 секунду:
После установке пакета
sudo apt-get install libc6-dev
выше приведённное предупреждение остаётся, а при установке пакета:
sudo dpkg -i libc6-dev_2.15-0ubuntu10.15_i386.deb
возникает ошибка:
Версия libc-dev-bin в системе 2.15-0ubuntu10.6.
dpkg: не удалось обработать параметр libc6-dev (--install):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
libc6-dev
Добавлено спустя 5 минут 40 секунд:
После установке пакета
sudo apt-get install libc6-dev
выше приведённное предупреждение остаётся, а при установке пакета:
sudo dpkg -i libc6-dev_2.15-0ubuntu10.15_i386.deb
возникает ошибка:
Версия libc-dev-bin в системе 2.15-0ubuntu10.6.
dpkg: не удалось обработать параметр libc6-dev (--install):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
libc6-dev
И всеравно при компиляции то же самое предупреждение:
project1.lpr(20,1) Warning: "crti.o" not found, this will probably cause a linking failure
project1.lpr(20,1) Warning: "crtn.o" not found, this will probably cause a linking failure
Что делать?
Добавлено спустя 10 минут 28 секунд:
Извините, но сегодня "криво" работает интернет. Однако, хочу разобраться с причиной и возможностью устранения выше сказанного. К сожалению, самостоятельно не могу, поэтому обращаюсь за помощью. Заранее всем ответившим большое спасибо.
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Компилятор должен знать пути к этим файлы, обычно что-то типа -Fl/usr/lib/x86_64-linux-gnu нужно записать в /etc/fpc.cfg или в параметрах проекта, или передавать в командной строке.
Пакеты -dev в сочетании с пакетами -dbg - это аналог PSDK в терминах Windows. Они все есть в репозиториях Ubuntu, но не устанавливаются при обычной установке, потому что нужны только для создания собственных программ.
Пакеты -dev в сочетании с пакетами -dbg - это аналог PSDK в терминах Windows. Они все есть в репозиториях Ubuntu, но не устанавливаются при обычной установке, потому что нужны только для создания собственных программ.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
shyub небольшое расследование привело к этому:
судя по этому, libc6-dev это часть пакета libc6... который, в свою очередь часть gcc. (это видно по другой части текста, мною не показанной)
Ну или можно попытаться поставить пакет linux-libc-dev возможно этого хватит
Код: Выделить всё
Другие пакеты, относящиеся к libc6-dev
зависимости
libc-dev-bin (= 2.15-0ubuntu10) [armhf, powerpc]
Embedded GNU C Library: Development binaries
libc-dev-bin (= 2.15-0ubuntu10.15) [amd64, i386]
libc6 (= 2.15-0ubuntu10) [armhf, powerpc]
Embedded GNU C Library: Shared libraries
также виртуальный пакет, предоставляемый libc6-udeb
libc6 (= 2.15-0ubuntu10.15) [amd64, i386]
linux-libc-dev
Linux Kernel Headers for development
судя по этому, libc6-dev это часть пакета libc6... который, в свою очередь часть gcc. (это видно по другой части текста, мною не показанной)
Ну или можно попытаться поставить пакет linux-libc-dev возможно этого хватит
По поводу:
По поводу: Warning... Это же не ошибка. Что за него "цепляться"? Или у вас бинарники не создаются? Решайте проблемы по мере поступления, а не создавайте их...
п.с.
). Благо - виртуалка.
. В общем вы сломали зависимости. Попробуйте: apt-get update потом: apt-get upgrade -f. Если не поможет то aptitude и гугл (по командам).проблемы зависимостей -- оставляем не настроенным
По поводу: Warning... Это же не ошибка. Что за него "цепляться"? Или у вас бинарники не создаются? Решайте проблемы по мере поступления, а не создавайте их...
п.с.
предварительно переустановив систему (есть вариант что он исправит зависимости но ... махонькийlinux-libc-dev возможно этого хватит
- Что за него "цепляться"? Или у вас бинарники не создаются?
Добавлено спустя 8 минут 31 секунду:
[list=]Компилятор должен знать пути к этим файлы, обычно что-то типа -Fl/usr/lib/x86_64-linux-gnu нужно записать в /etc/fpc.cfg или...[/list]
Сергей, дв у меня полностью всё установилось. Были вопросы в процессе установки, на которые я сказал "Y", однако, как было предупреждение в Лвзарусе, так оно и осталось. Проекты компилируются, проблем нет, но конечня цель - не скомпилировать проект, о котором потом можно забыть, а разобраться в причине досконально...
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
pupsik писал(а):предварительно переустановив систему (есть вариант что он исправит зависимости но ... махонький)
Пока необходимости такого с линуксом не видел. С зависимостями траблы были, а вот чтобы сломать систему совсем... Лично я сломанную линуху видел только раз -- но это были проблемы с основным оборудованием (мать/проц). Возможно, замена помогла бы, но сказали бросить комп на запчасти.
shyub писал(а): однако, как было предупреждение в Лвзарусе, так оно и осталось.
Если компилируется, забейте. Просто какие-то связанные пакеты поставлены не полностью. Если речь об стабильной версии (из репов системы), то просто доставляйте их через менеджер пакетов (дополнительные пакеты лазаря или fpc). На всякий случай не забудьте linux-libc-dev (пакеты для разработчиков) и gcc. Их тоже поставьте по полной. Скорее всего, на одном из этих этапов предупреждение исчезнет.
сломанные зависимости вам помогут?однако "не могу спокойно спать"
можно... Рут не в тех руках - весёлое занятие. Я в общем писал не о том.. Я писал о стандартной реакции виндо-пользователя.С зависимостями траблы были, а вот чтобы сломать систему совсем.
п.с.
Кстати: "бубен" сломать куда проще и быстрее нежели его родителя (дебиан).
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
pupsik писал(а):Я писал о стандартной реакции виндо-пользователя.
Я стандартный виндопользователь. Начинал еще с ДОСа. И поверьте, пересаживал людей на линукс, если это было нужно.
pupsik писал(а): "бубен" сломать куда проще и быстрее нежели его родителя (дебиан).
пытался я настроить под себя дебиан -- пока не очень удачно. В смысле, что работало, но вот хвосты выглядывали. Надо будет восстановить при случае знакомство.
pupsik писал(а): Рут не в тех руках - весёлое занятие.
Это для любой системы так. У меня получалось легким движением руки уводить систему в вечный ребут.
Лекс Айрин всё бывает в первый раз
Это уже темы не касаемо....
Это уже темы не касаемо....
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
pupsik, судя по тому, что у меня, да и у многих других, как я понимаю, такой проблемы не было, то и лечение достаточно легкое.
На http://leybabronstain.ucoz.com/blog/how_to_install_trunk_fpc_lazarus_for_debian/2014-10-07-4 нашёл решение этой проблемы.
Автор почему-то перед началом установки Лазаруса устанавливает довольн-таки много пакетов. Я устанавливал только sudo apt-get install libgtk2.0-dev, а дальше sudo dpkg -i fpc_3.0.0-151205_i386.deb, sudo dpkg -i fpc-src_3.0.0-151205_i386.deb и sudo dpkg -i lazarus_1.6-0_i386.deb. При этом всё установилось плюс ряд дополнительных и сторонних компонентов.
Если я в “Проект / Параметры проекта…/ Параметры компилятора / Пути / Другие модули (-Fu)” указываю путь: "/usr/lib/i386-linux-gnu", то предупреждение об отсутствии crti.o и crtn.o не появляется. Т.е. всё нормально. Далее автор предлагает внести в соответствующую секцию файла $HOME/.fps.cfg изменения, однако командой sudo gedit /home/<имя_пользователя>/.fpc.cfg открыть этот файл не получается (то вообще открывается пустой файл, то пишет красным, что доступ к .fpc.cfg исчерпан). Попытка редактировать другие файлы fpc.cfg приводит к тому, что Lazarus перестаёт загружаться.
Посоветуйте, что можно сделать.
Автор почему-то перед началом установки Лазаруса устанавливает довольн-таки много пакетов. Я устанавливал только sudo apt-get install libgtk2.0-dev, а дальше sudo dpkg -i fpc_3.0.0-151205_i386.deb, sudo dpkg -i fpc-src_3.0.0-151205_i386.deb и sudo dpkg -i lazarus_1.6-0_i386.deb. При этом всё установилось плюс ряд дополнительных и сторонних компонентов.
Если я в “Проект / Параметры проекта…/ Параметры компилятора / Пути / Другие модули (-Fu)” указываю путь: "/usr/lib/i386-linux-gnu", то предупреждение об отсутствии crti.o и crtn.o не появляется. Т.е. всё нормально. Далее автор предлагает внести в соответствующую секцию файла $HOME/.fps.cfg изменения, однако командой sudo gedit /home/<имя_пользователя>/.fpc.cfg открыть этот файл не получается (то вообще открывается пустой файл, то пишет красным, что доступ к .fpc.cfg исчерпан). Попытка редактировать другие файлы fpc.cfg приводит к тому, что Lazarus перестаёт загружаться.
Посоветуйте, что можно сделать.
