Вверх ↑
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
#16: 2007-07-18 18:34:33 ЛС | профиль | цитата
HikeR писал(а):
так вот какой путь более правильный?

правильные оба. make.bat из папки FPC собирает только системные юниты. Модули элементов собираются один раз и кладуться в папку Elements/Delphi/code/units уже в процессе компиляции схемы. Это удобно тем, что при подключение одного компилятора к нескольким средам экономится место. А так впринципе разницы нет никакой.

HikeR, даже если собрать fpc в linux и все виндовые модули пересобрать там же на нем - программы всеравно не будут работать без Wine.
карма: 27
0
Ответов: 499
Рейтинг: 1
#17: 2007-07-18 23:49:29 ЛС | профиль | цитата
Dilma писал(а):
программы всеравно не будут работать без Wine.

если они не смогут работать без промежуточной библиотеки-транслятора, получается что с ней - смогут. а библиотека это не весь огромный wine. понятно, что простой вызов какого-нибудь MesageBoxA в линуксе ни к чему не приведет. а с прослойкой ведь должно? также работает cygwin, позволяя собирать unix приложения под win32. либо делать совсем самостоятельные программы. на худой конец можно же перехватывать такие вызовы, и, например, в консоль писать "произошел вызов такой-то ф-ии" для начала.

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

все-таки пару примеров покажу.
при попытке тупой замены старого компилятора на новый:
...
kol.pas(17466,18) Error: Asm: 16 Bit references not supported
kol.pas(17466,18) Error: Asm: Invalid effective address
...
что-то с асмом?

при подключении нового KOL-а к существующей установке:
Share.pas(1852,26) Error: class type expected, but got "PThread"
Share.pas(1861,21) Error: Incompatible types: got "LongBool" expected "PThread"
Share.pas(1862,17) Error: identifier idents no member "FHandle"
Share.pas(1867,48) Error: identifier idents no member "FThreadID"

hiasm из шапки форума. может кто встречался? и неужели за все это время никто не пробовал сменить версию FPC?
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#18: 2007-07-18 23:57:15 ЛС | профиль | цитата
HikeR писал(а):
а с прослойкой ведь должно?

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

HikeR писал(а):
и неужели за все это время никто не пробовал сменить версию FPC?

пробовали. Вроде FPC 2.0(может чуть старше) прекрасно компилировал все модули и текущий пакетный KOL без ошибок. Видимо в таком составе и следует проводить эксперементы.
карма: 27
0
Разработчик
Ответов: 26304
Рейтинг: 2146
#19: 2007-07-19 00:18:02 ЛС | профиль | цитата
Dilma писал(а):
пробовали. Вроде FPC 2.0(может чуть старше) прекрасно компилировал все модули и текущий пакетный KOL без ошибок

Интересно, и где взять эту сборку FPC?
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#20: 2007-07-19 00:29:09 ЛС | профиль | цитата
Вот такая петрушка для пустой формы:
Debug писал(а):
Free Pascal Compiler version 2.0.0 [2005/05/08] for i386
Copyright (c) 1993-2005 by Florian Klaempfl
Target OS: Win32 for i386
Compiling D:126DelphiHiAsmsrcElementsdelphicodeProject1.pas
Compiling D:126DelphiHiAsmsrcElementsdelphicodeShare.pas
Compiling D:126DelphiHiAsmsrcElementsdelphicodeDebug.pas
Compiling resource D:126DelphiHiAsmsrcElementsdelphicodeallres.res
Linking D:126DelphiHiAsmsrcProject1.exe
2120 Lines compiled, 1.0 sec
End build


FPC 2.0.0
KOL 2.09

командная строка несколько иная:
%fname% -Sd -Mdelphi -FE%opath% -FU%upath%units -FDtools -CX

нет дефайна F_P поскольку второй FPC по заявкам автором полностью совместим с Delphi.

nesco писал(а):
Интересно, и где взять эту сборку FPC?

на сайте производителя видимо
карма: 27
0
Ответов: 499
Рейтинг: 1
#21: 2007-07-19 00:56:56 ЛС | профиль | цитата
Dilma писал(а):
нет дефайна F_P

блин. а я вот только-только докопался.
Dilma писал(а):
-Sd -Mdelphi

а эти два ключа - ни одно и тоже?
Dilma писал(а):
FPC 2.0.0
KOL 2.09

при FPC - 2.0.4 и KOL - 2.70 вижу пока только это:
Command line: fpc.exe E:HiAsmElementsdelphicodeProject1.pas -FEE:HiAsm -Fuf:unitskol -FUf:unitshiasm -Sd -Rintel -OG2p3 -Xs -XX -CX -Sg -vei -dF_P
Target OS: Win32 for i386
Compiling E:HiAsmElementsdelphicodeProject1.pas
Compiling E:HiAsmElementsdelphicodehiMainForm.pas
Compiling E:HiAsmElementsdelphicodeShare.pas
Compiling E:HiAsmElementsdelphicodeDebug.pas
дальше идут вышеописанные ошибки.
тоже пустая форма. и hiMainForm.pas есть.
Dilma писал(а):
FPC 2.0(может чуть старше) прекрасно компилировал все модули и текущий пакетный KOL без ошибо

дык текущий KOL весь же переворочен для совместимости с FPC утилитой типа GlueCut-а, и это не мешает ему?

вообще, конечно, обнадежили ;) еще раз с начала пойду.

[size=-2]------ Добавлено в 00:56
а без -dF_P
Compiling E:HiAsmElementsdelphicodeWin.pas
Win.pas(176,30) Error: Incompatible type for arg no. 1: Got "THIWin.KeyChar(PControl,var Char, LongWord)", expected "<procedure variable type of procedure(PControl,var KOLChar, LongWord) of object;Register>"
карма: 0

0
Ответов: 9906
Рейтинг: 351
#22: 2007-07-19 02:18:59 ЛС | профиль | цитата
Должен отметить, что связать посты на трех страницах в единую логику мне так и не удалось

Есть два вопроса (точнее три)

1) Где это вы нашли fpc2, под которым просто компилится KOL (для начала). У меня компилится, но я половину библиотек заменил на дельфячие. Какой после этого портирование, и какой линух, к чертовой матери

2) И каким таким боком KOL вообще к линуху относится.

3) А не кажется ли вам, что после ответа не первые два - говорить больше не о чем. В рамках названия топика
карма: 9

0
Ответов: 5446
Рейтинг: 323
#23: 2007-07-19 06:47:13 ЛС | профиль | цитата
Dilma, а 2й FPC научился наконец WebBrowser нормально проглатывать или нет?
карма: 1

0
Ответов: 499
Рейтинг: 1
#24: 2007-07-19 10:27:38 ЛС | профиль | цитата
Galkov, название топика, согласен, не совсем точно отражает суть мыслей.
однако, цель довольно четко очерчена, использовать код, генерируемый хасмом, для компилирования под линуксом при помощи fpc.
какие при этом могут возникнуть трудности я представляю только теоретически, так как столкнуться с ними еще не пришлось. fpc 2.0.4 не желает пока что подключатся.
с другой стороны, отрицательный результат - это, как известно, тоже полезная информация. причем полученная лично, без продолжительного нытья в форуме. тем более, в попытках обновить компилятор я столкнулся с таким числом новых для меня вещей, что пришлось заниматься и ими, и я стал немного больше понимать и внутреннее устройство самого хасма, и взаимосвязь компонентов.

Galkov писал(а):
2) И каким таким боком KOL вообще к линуху относится.

28.10.2006 5K Будущее ядро кода для портирования на платформу Linux. Еще не тестировалось, компилируемо в Delphi с модулем Libc.pas из Kylix.

ну и вот этот кусочек (выделено мной):
{$IFDEF LINUX}
{$DEFINE LIN}
{$DEFINE PAS_VERSION}
{$DEFINE NOT_USE_RICHEDIT}
{$IFNDEF GTK}
{$IFNDEF XQT}
{$DEFINE GTK} // it is also possible to define GTK as a project option
{$ENDIF XQT} // even for Windows system
{$ENDIF GTK}
{$ELSE} // to exploit GTK under Win32 rather then native GDI
{$DEFINE WIN}
{$DEFINE GDI}
{$ENDIF}

Galkov писал(а):
1) Где это вы нашли fpc2, под которым просто компилится KOL

еще не нашел. но в поиске.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#25: 2007-07-19 10:37:07 ЛС | профиль | цитата
iarspider писал(а):
а 2й FPC научился наконец WebBrowser нормально проглатывать или нет?

неа. Как были проблемы с интерфейсами так и остались. Собственно по этой причине переходить на него и не стали.

HikeR писал(а):
тем более, в попытках обновить компилятор я столкнулся с таким числом новых для меня вещей, что пришлось заниматься и ими, и я стал немного больше понимать и внутреннее устройство самого хасма, и взаимосвязь компоненто

похвально.

Galkov писал(а):
У меня компилится, но я половину библиотек заменил на дельфячие

очевидно, что все *.pas не его родные.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#26: 2007-07-19 11:03:51 ЛС | профиль | цитата
HikeR писал(а):
цель довольно четко очерчена, использовать код, генерируемый хасмом, для компилирования под линуксом при помощи fpc

Не фига она не очерчена
Для начала, конкретно именно по этой цитате:
1) что конкретно Вы понимаете под "код, генерируемый хасмом"
2) что означает "компилирования под линуксом"
3) какие есть основания даже просто надеяться, что "код, генерируемый хасмом" и "линукс" можно употреблять в одном предложении



[size=-2]------ Добавлено в 11:03
Dilma писал(а):
очевидно, что все *.pas не его родные

Да в пакете вообще не pas-ы шли, а объектные модули. Если начать рыться по сырцам, то очень быстро дуреешь - эти никсоиды совсем помешались на "крос-платформенности". До несчастного определения winapi через 3-4 инклуда добираешься
Я руководствовался указаниями из KOLDEF.INC
{$IFDEF FPC}
{------------------------------------
by Thaddy de Koning:

FPC version 2.1.1 is very compatible with Delphi and kol now.
You can simply use the $(DELPHI)\source\rtl\win\*.pas files from Delphi 4/5 instead of the prepared files that were needed for
FPC1.X

That is all to have full compatibility.
------------------------------------}

Пока подтверждается - жрет за милую душу
Если конкретно, то взял пакет, выложенный колегой Wolfic здесь на форуме (кажется 2.0.4)
И по принципу "минимального действия" заменил пока:
Messages.pas
OLE2.PAS
richedit.pas
Types.pas
Windows.pas
на Дельфячие
В пакете Дельфи-2 "доработал" EntryPoint.hws для добавления двух строк в исходник
  println('{$ifdef FPC} {$APPTYPE GUI} {$endif}')
  println('{$R allres.res}')
- ну и работает (сейчас в папке Kol2 у меня v2.70 лежит)...

С WebBrowser-ом не пробовал еще
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#27: 2007-07-19 11:08:15 ЛС | профиль | цитата
Galkov, г-н HikeR, кроме всего прочего хочет еще встроить в исходники wine, а это уже не лишено смысла. Чисто теоритически HiAsm+KOL+FPC+WineLIB = Linux Application. Но повозиться придется, это безусловно
карма: 27
0
Ответов: 499
Рейтинг: 1
#28: 2007-07-19 11:15:31 ЛС | профиль | цитата
ок. я хочу, чтобы при добавлении ключа -Tlinux в строки конфигурации fpc вместо обычного экзешника получился работоспособный бинарник.
либо, что более правильно, нажать ctrl+d, и собрать полученый project1.pas (или что там будет) уже на целевой системе. если kol полностью поддерживает gtk, то с интерфейсом проблем не будет. а что еще потребуется - посмотрим.
карма: 0

0
Ответов: 9906
Рейтинг: 351
#29: 2007-07-19 11:31:11 ЛС | профиль | цитата
И кто такой wine
Run-Time эмулятор винды, чтоли

[size=-2]------ Добавлено в 11:31
HikeR писал(а):
если kol полностью поддерживает gtk

Полностью не поддерживает
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#30: 2007-07-19 11:40:46 ЛС | профиль | цитата
Galkov писал(а):
И кто такой wine

это не эмулятор винды. Это эмулятор WinAPI. В Linux это выглядит как обычный запуск приложения, но с интерфейсом полностью виндовым(независимо от темы, которая сейчас установлена у пользователя). Плюс подхода в том, что скорость работы таких программ практически неотличима от оригинала. Минус как следствие плюса - не все программы можно запустить из-под wine. Скажем использовали недокументированную ф-цию, которой в wine наверняка нет и все - труба.

Кроме того в последних Linux wine аккуратно встраивают в систему и неискушенный Windows пользователь даже и не догадывается впоследствие, что его экзешнички запускаются через эмулятор.
карма: 27
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)