Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как исправить ошибку линковки на Ubuntu 22.04 LTS (GNU/Linux 5.10.140 aarch64) при компиляции проекта на Free Pascal

Delphi , Синтаксис , Ошибки и Исключения

 

Проблема

При попытке компиляции проекта на Free Pascal под Ubuntu 22.04 LTS (aarch64) пользователь столкнулся с ошибкой линковки:

/usr/bin/ld: /usr/lib/fpc/3.2.2/units/aarch64-linux/rtl/cprt0.o: in function `_start':
(.text+0x54): undefined reference to `__libc_csu_init'

Эта ошибка возникает при использовании Free Pascal 3.2.2 на aarch64-системах.

Причина

Ошибка связана с несовместимостью версий библиотек и компилятора. В данном случае, Free Pascal 3.2.2 не полностью поддерживает aarch64-архитектуру в Ubuntu 22.04.

Решения

1. Установка последней версии FPC из репозитория

Самый простой способ - установить последнюю версию Free Pascal из репозитория:

sudo apt update
sudo apt install fpc

2. Сборка FPC из исходников

Если вам нужна более новая версия, можно собрать FPC из исходников:

# Установка зависимостей
sudo apt install build-essential git

# Клонирование репозитория
git clone https://gitlab.com/freepascal.org/fpc/source.git fpc
cd fpc

# Сборка и установка
make clean all
sudo make install

3. Использование fpcupdeluxe

Для удобства можно использовать утилиту fpcupdeluxe:

  1. Скачайте последнюю версию с официального репозитория
  2. Запустите и выберите aarch64-linux как целевую платформу

4. Кросс-компиляция с Windows (альтернативное решение)

Если у вас есть доступ к Windows-машине, можно настроить кросс-компиляцию:

// Пример настройки кросс-компилятора в Lazarus
program CrossCompile;

uses
  SysUtils;

begin
  // Настройки для aarch64-linux
  {$IFDEF WIN32}
    {$LINKLIB libc}
    {$LINKLIB libgcc}
    {$LINKLIB libdl}
    {$LINKLIB libpthread}
    {$LINKLIB librt}
  {$ENDIF}

  WriteLn('Hello, aarch64 Linux!');
end.

Пример рабочего кода

Вот простой пример программы, который должен работать на aarch64 после правильной настройки:

program AArch64Test;

uses
  SysUtils;

begin
  WriteLn('Программа успешно запущена на aarch64 Linux!');
  WriteLn('Версия FPC: ', FPC_VERSION);
  WriteLn('Целевая ОС: ', TargetOS);
  WriteLn('Целевая CPU: ', TargetCPU);
end.

Заключение

Ошибка линковки на aarch64-системах решается установкой актуальной версии Free Pascal. Для разработки под Linux на архитектуре aarch64 рекомендуется:

  1. Использовать последнюю стабильную версию FPC
  2. При необходимости - собирать из исходников
  3. Рассмотреть кросс-компиляцию с x86-системы

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

Создано по материалам из источника по ссылке.

Статья описывает решение ошибки линковки при компиляции Free Pascal на Ubuntu 22.04 LTS для архитектуры aarch64.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Ошибки и Исключения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 17:14:06
2025-11-03 17:51:43/0.011348962783813/1