LINUX.ORG.RU

Qt of FreePascal

 , ,


0

1

Нужно прицепить Qt интерфейс к Фрипаскалю. Читал http://wiki.freepascal.org/Qt4_binding и http://wiki.freepascal.org/Qt_Interface Всё делал как положено скачал исходники , $make, #make install, Скопировал cp libQt4Pas.so* /usr/local/lib/ ( хоть на сколько я понимаю, это должен делать make install) Вот простейшая программа

program first;
uses Qt4;
begin
end.
и ошибка
alex@lenovo /media/Files/Programming/Cpp/Projects/Andronov/Tests/Qt_pas $ fpc first.pas
Free Pascal Compiler version 2.6.0-6 [2012/08/09] for x86_64
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling first.pas
Fatal: Can't find unit Qt4 used by first
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)
При этом я ещё дополнительно ставил через синаптик /libQt4Pas5 и /libQt4Pas-dev.

Более того

# ldconfig -p | grep libQt4Pas
	libQt4Pas.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt4Pas.so.5
	libQt4Pas.so.5 (libc6,x86-64) => /usr/lib/libQt4Pas.so.5
	libQt4Pas.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt4Pas.so
Почему не компилится?


Почему не компилится?

Поэтому:

Can't find unit Qt4 used by first

то есть fpc в путях к юнитам не может найти Qt4.ppu. Или файла нет, там, где он должен быть, или в конфиге не хватает пути до нужного каталога.

bormant ★★★★★
()

... либо от юнита Qt4 есть только исходники, а fpc был запущен без ключа -B (Build all modules).

bormant ★★★★★
()

Всё делал как положено скачал исходники , $make, #make install

Ой ли... Как минимум, README.TXT не читан, а там:

Compile Pascal Qt Interface from source:
========================================
* Download and unpack the sources
* cd into the resulting unpacked directory
* This directory contains amongs other things a Qt Project File Qt4Pas.pro
* run qmake -query to inspect your Qt installation
* qmake (creates Makefile based upon Qt4Pas.pro)
* make (compiles)
* make install (obtain super user rights with sudo or su)
* make clean (cleans directory, do this when switching Qt versions)

Правда оно компенсировалось последующей установкой /libQt4Pas5 и /libQt4Pas-dev, но понимания ради отметить надо.

bormant ★★★★★
()
Ответ на: комментарий от bormant

Всё делал по инсткурции. Включая qmake и даже make clean. Qt4.ppu найти и я не могу. От куда его взять и куда его положить? Ключ -B не даёт никаких результатов.

vsrmis
() автор топика
Ответ на: комментарий от vsrmis

qt4pas-V2.5_Qt4.5.3 у меня не собрался, поэтому сказать точно, куда он собирался ставить собранный юнит, сказать не возьмусь. Но в исходниках есть qt4.pas, откомпилируйте, положите в каталог сообразно архитектуре, например,
/usr/lib64/fpc/2.6.2/units/x86_64-linux/qt4pas

В /etc/fpc.cfg уже есть маски:
# searchpath for units and other system dependent things
-Fu/usr/lib64/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib64/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib64/fpc/$fpcversion/units/$fpctarget/rtl
-Fu~/.fppkg/lib/fpc/$fpcversion/units/$FPCTARGET/*

Если используется другой fpc.cfg, например копия в каталоге проекта, убедитесь, что каталог есть в списке.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)
Ответ на: комментарий от actics

Новая тема

ответ на этот вопрос преследует меня самого и я хотел бы его задать сообществу, в связи с чем создал новую тему. Посоветуйте инструмантарий для группового проекта определённой архитектуры

vsrmis
() автор топика

У мну пример скомпилился.

Скопировал в катог из лазаруса файлы qt4.pas, qt45.pas, qtdefines.inc. Скачал арчевский пакет qt4pas-2.5-3-x86_64.pkg.tar.xz, скопипастил из него в каталог либы и запустил компиляцию примера.

Napilnik ★★★★★
()
Ответ на: Новая тема от vsrmis

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

Napilnik ★★★★★
()
20 ноября 2013 г.

(Прошу прощения, что реанимирую старые треды, но, чтобы не создавать новых, я задам свой вопрос здесь.)

Тоже прицепляю QT4 к FreePascal. Все поставил, скомпилировал qt4.pas, положил куда надо.

Программа (минимальная, как у топикстартера) компилируется, но не линкуется.

Пишет:

anthony3d
()
Ответ на: комментарий от anthony3d

Linking test /usr/bin/ld: warning: link.res contains output sections; did you forget -T? /usr/lib/libQt4Pas.so: undefined reference to `QString::isRightToLeft() const' /usr/lib/libQt4Pas.so: undefined reference to `QListData::detach_grow(int*, int)' /usr/lib/libQt4Pas.so: undefined reference to `QListData::detach(int)' test.pas(3,1) Error: Error while linking test.pas(3,1) Fatal: There were 1 errors compiling module, stopping Fatal: Compilation aborted

anthony3d
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.