FPC на FreeBSD/amd64

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Сообщение Dmitry » 05.07.2005 09:22:55

Купили себе новый сервер на Оптеронах. Стала задача, перенести программу на него.
Для начала пробовал скомпилить простенькую программу hello world.

Выдало следующую фигню.
# fpc hello.pas
Free Pascal Compiler version 2.0.0 [2005/05/15] for i386
Copyright © 1993-2005 by Florian Klaempfl
Target OS: FreeBSD/ELF for i386
Compiling hello.pas
Linking hello
/usr/bin/ld: skipping incompatible /usr/local/lib/fpc/2.0.0/units/i386-freebsd/rtl/prt0.o when searching for /usr/local/lib/fpc/2.0.0/units/i386-freebsd/rtl/prt0.o
/usr/bin/ld: cannot find /usr/local/lib/fpc/2.0.0/units/i386-freebsd/rtl/prt0.o
hello.pas(5,1) Error: Error while linking
Error: /usr/local/bin/ppc386 returned an error exitcode (normal if you did not specifiy a source file to be compiled)

Вычитал в mail-листах FreeBSD, что, оказывается, на машине с x86_64 можно только запускать elf32-i386-freebsd приложения, но не компилировать их. Странная такая совместимость. :(

Понял, что мне нужно перекомпилить rtl библиотеки, а собственно загрузчик prt0.o под x86_64
Стянул исходники. Начал компилить

#gmake build CPU_TARGET=x86_64 CROSSCOMPILE=yes
....
gmake[5]: Entering directory `/usr/home/mitya/fpc/fpc/rtl/freebsd'
/bin/mkdir -p /usr/home/mitya/fpc/fpc/rtl/units/x86_64-freebsd
x86_64-freebsd-as -o /usr/home/mitya/fpc/fpc/rtl/units/x86_64-freebsd/prt0.o x86_64/prt0.as
gmake[5]: x86_64-freebsd-as: Command not found

Да, нету у меня такого ассемблера. Ладно, подумал я, смонтирую ка я NFS и буду компилить на одной машине, а запускать на другой.

Запускается, только теперь кричит:
#./auth
/usr/libexec/ld-elf.so.1: Shared object "libmysqlclient.so.14" not found, required by "auth"

Странно. Смотрел /var/run/ld-elf.so.hints - там директория /usr/local/lib/mysql присутствует. Положил файл libmysqlclient.so.14 в один каталог с программой - все равно его не видит. Даже не знаю что и делать.

Помогите кто чем может.
Dmitry
новенький
 
Сообщения: 52
Зарегистрирован: 05.07.2005 08:53:06

Сообщение Dmitry » 05.07.2005 12:07:04

Временное решение проблемы сделал копированием 32-х разрядной версии библиотеки libmysqlclient.so.14 в папку /usr/lib32
Все заработало. Но хотелось бы узнать мнение остальных людей по поводу переноса FPC на 64-х битную платформу.
Dmitry
новенький
 
Сообщения: 52
Зарегистрирован: 05.07.2005 08:53:06

Сообщение cranium » 05.07.2005 13:02:16

Пробовал 64 битный FreePascal для Linux... Пользую FedoreCore 3 ни каких особенностей не заметил. Писал демона принимающего строки через сокет и складывающего их в файл. Потом этот же код без проблем откомпилировался на AspLinux 10.0... На предмет FreeBSD ни чего не скожу....
cranium
постоялец
 
Сообщения: 143
Зарегистрирован: 08.05.2005 03:59:45
Откуда: Санкт-Петербург

Сообщение Dmitry » 05.07.2005 14:00:45

А где взять этот 64-х битный FreePascal ?
Dmitry
новенький
 
Сообщения: 52
Зарегистрирован: 05.07.2005 08:53:06

Сообщение cranium » 05.07.2005 19:16:50

<a href='http://www.freepascal.org/down-x86_64-linux-russia.html' target='_blank'>Linux AMD_64</a>
Это правда для Linuxa
cranium
постоялец
 
Сообщения: 143
Зарегистрирован: 08.05.2005 03:59:45
Откуда: Санкт-Петербург

Сообщение Dmitry » 06.07.2005 10:36:33

cranium писал(а): <a href='http://www.freepascal.org/down-x86_64-linux-russia.html' target='_blank'>Linux AMD_64</a>
Это правда для Linuxa

Так отож.

Поделитесь, пожалуйста, опытом кроссплатформенной компиляции.
Dmitry
новенький
 
Сообщения: 52
Зарегистрирован: 05.07.2005 08:53:06

Сообщение ushakov » 06.07.2005 16:25:07

Читайте файл compiler/README (в исходниках). В нем как раз описывается как собирать freepascal под разные ОС и для разных процессоров.
ushakov
новенький
 
Сообщения: 51
Зарегистрирован: 18.05.2005 11:15:48
Откуда: Украина, Киев


Вернуться в Free Pascal Compiler

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru