Что такое crto.o и crtn.o?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Что такое crto.o и crtn.o?

Сообщение shyub » 05.06.2016 22:28:19

Возможно "идиотский" вопрос, но прошу прощения, т.к. работая под 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.

Я понял так, что не найдены эти файлы и в чём-то будет отказано. Если кто может, объясните, что это за файлы, в чём мне будет отказано, чем это чревато и как убрать это предупреждение.
Заранее спасибо.
shyub
постоялец
 
Сообщения: 112
Зарегистрирован: 25.11.2014 23:15:19

Re: Что такое crto.o и crtn.o?

Сообщение Sergei I. Gorelkin » 06.06.2016 02:01:51

Эти файлы являются частью пакета libc6-dev, который нужно установить, чтобы собиралось что-то сложнее чем hello world. Вообще, нужны -dev пакеты от всех используемых библиотек, с учетом архитектуры (libc6-dev:amd64 либо libc6-dev:i386). В этом заключается основное отличие линукса от винды :)
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Что такое crto.o и crtn.o?

Сообщение shyub » 06.06.2016 11:29:02

Сергей, спасибо!
Нашёл на сайте http://packages.ubuntu.com/precise/i386/libc6-dev/download пакет libc6-dev_2.15-0ubuntu10.15_i386.deb.
Это то, что надо?
shyub
постоялец
 
Сообщения: 112
Зарегистрирован: 25.11.2014 23:15:19

Re: Что такое crto.o и crtn.o?

Сообщение wavebvg » 06.06.2016 11:34:59

Если Вы не занимаетесь кросс компиляцией, то лучше воспользуйтесь пакетным менеджером (на примере apt) и поставьте вот так:
Код: Выделить всё
sudo apt-get install libc6-dev


Ну и даже при кросс компиляции, проще вначале установить (к примеру в виртуалку) систему, а потом уже пользоваться всеми полученными в виртуалке файлами.
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35

Re: Что такое crto.o и crtn.o?

Сообщение shyub » 06.06.2016 12:19:46

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 секунд:
Извините, но сегодня "криво" работает интернет. Однако, хочу разобраться с причиной и возможностью устранения выше сказанного. К сожалению, самостоятельно не могу, поэтому обращаюсь за помощью. Заранее всем ответившим большое спасибо.
shyub
постоялец
 
Сообщения: 112
Зарегистрирован: 25.11.2014 23:15:19

Re: Что такое crto.o и crtn.o?

Сообщение Sergei I. Gorelkin » 06.06.2016 16:06:05

Компилятор должен знать пути к этим файлы, обычно что-то типа -Fl/usr/lib/x86_64-linux-gnu нужно записать в /etc/fpc.cfg или в параметрах проекта, или передавать в командной строке.

Пакеты -dev в сочетании с пакетами -dbg - это аналог PSDK в терминах Windows. Они все есть в репозиториях Ubuntu, но не устанавливаются при обычной установке, потому что нужны только для создания собственных программ.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Что такое crto.o и crtn.o?

Сообщение Лекс Айрин » 06.06.2016 16:13:04

shyub небольшое расследование привело к этому:

Код: Выделить всё
Другие пакеты, относящиеся к 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 возможно этого хватит
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Что такое crto.o и crtn.o?

Сообщение pupsik » 06.06.2016 16:22:50

По поводу:
проблемы зависимостей -- оставляем не настроенным
. В общем вы сломали зависимости. Попробуйте: apt-get update потом: apt-get upgrade -f. Если не поможет то aptitude и гугл (по командам).
По поводу: Warning... Это же не ошибка. Что за него "цепляться"? Или у вас бинарники не создаются? Решайте проблемы по мере поступления, а не создавайте их...

п.с.
linux-libc-dev возможно этого хватит
предварительно переустановив систему (есть вариант что он исправит зависимости но ... махонький :D ). Благо - виртуалка.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Что такое crto.o и crtn.o?

Сообщение shyub » 06.06.2016 16:32:18

    Что за него "цепляться"? Или у вас бинарники не создаются?
Всё работает и создаёься, однако "не могу спокойно спать", если что-то не так. А вдруг где-нибудь и когда-нибудь выпловет это...

Добавлено спустя 8 минут 31 секунду:
[list=]Компилятор должен знать пути к этим файлы, обычно что-то типа -Fl/usr/lib/x86_64-linux-gnu нужно записать в /etc/fpc.cfg или...[/list]
Сергей, дв у меня полностью всё установилось. Были вопросы в процессе установки, на которые я сказал "Y", однако, как было предупреждение в Лвзарусе, так оно и осталось. Проекты компилируются, проблем нет, но конечня цель - не скомпилировать проект, о котором потом можно забыть, а разобраться в причине досконально...
shyub
постоялец
 
Сообщения: 112
Зарегистрирован: 25.11.2014 23:15:19

Re: Что такое crto.o и crtn.o?

Сообщение Лекс Айрин » 06.06.2016 17:10:18

pupsik писал(а):предварительно переустановив систему (есть вариант что он исправит зависимости но ... махонький :D )


Пока необходимости такого с линуксом не видел. С зависимостями траблы были, а вот чтобы сломать систему совсем... Лично я сломанную линуху видел только раз -- но это были проблемы с основным оборудованием (мать/проц). Возможно, замена помогла бы, но сказали бросить комп на запчасти.

shyub писал(а): однако, как было предупреждение в Лвзарусе, так оно и осталось.


Если компилируется, забейте. Просто какие-то связанные пакеты поставлены не полностью. Если речь об стабильной версии (из репов системы), то просто доставляйте их через менеджер пакетов (дополнительные пакеты лазаря или fpc). На всякий случай не забудьте linux-libc-dev (пакеты для разработчиков) и gcc. Их тоже поставьте по полной. Скорее всего, на одном из этих этапов предупреждение исчезнет.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Что такое crto.o и crtn.o?

Сообщение pupsik » 06.06.2016 17:36:17

однако "не могу спокойно спать"
сломанные зависимости вам помогут?
С зависимостями траблы были, а вот чтобы сломать систему совсем.
можно... Рут не в тех руках - весёлое занятие. Я в общем писал не о том.. Я писал о стандартной реакции виндо-пользователя.
п.с.
Кстати: "бубен" сломать куда проще и быстрее нежели его родителя (дебиан).
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Что такое crto.o и crtn.o?

Сообщение Лекс Айрин » 06.06.2016 17:56:06

pupsik писал(а):Я писал о стандартной реакции виндо-пользователя.


Я стандартный виндопользователь. Начинал еще с ДОСа. И поверьте, пересаживал людей на линукс, если это было нужно.

pupsik писал(а): "бубен" сломать куда проще и быстрее нежели его родителя (дебиан).


пытался я настроить под себя дебиан -- пока не очень удачно. В смысле, что работало, но вот хвосты выглядывали. Надо будет восстановить при случае знакомство.

pupsik писал(а): Рут не в тех руках - весёлое занятие.


Это для любой системы так. У меня получалось легким движением руки уводить систему в вечный ребут.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Что такое crto.o и crtn.o?

Сообщение pupsik » 06.06.2016 18:23:53

Лекс Айрин всё бывает в первый раз :D
Это уже темы не касаемо....
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Что такое crto.o и crtn.o?

Сообщение Лекс Айрин » 06.06.2016 18:28:19

pupsik, судя по тому, что у меня, да и у многих других, как я понимаю, такой проблемы не было, то и лечение достаточно легкое.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Что такое crto.o и crtn.o?

Сообщение shyub » 10.06.2016 16:07:10

На 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 перестаёт загружаться.
Посоветуйте, что можно сделать.
shyub
постоялец
 
Сообщения: 112
Зарегистрирован: 25.11.2014 23:15:19


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 234

Рейтинг@Mail.ru