Попробовал пример начать переделывать под Linux.
Код:
(*************
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE '/home/bbweb/T.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET WIN1251;
CREATE TABLE T (
F INTEGER
);
***************)
MODULE DbtstT;
IMPORT Log, LinSimpleLog, SqlDB, FibDriver, Strings;
CONST
protocol = "FibDriver";
id = "lc_ctype=WIN1251;user_name=SYSDBA;password=masterkey"; password = "masterkey";
datasource = "/home/bbweb/T.FDB";
PROCEDURE Test*;
VAR db: SqlDB.Database; res, i: INTEGER;
si: ARRAY 10 OF CHAR;
BEGIN
SqlDB.OpenDatabase(protocol, id, password, datasource, SqlDB.sync, SqlDB.showErrors, db, res);
IF res = 0 THEN
Log.String('Open Base');
ELSE
Log.String('Error open Base = '); Log.Int(res);
RETURN ;
END;
FOR i := 1 TO 50 DO
Strings.IntToString(i, si);
db.Exec("INSERT INTO T (F) VALUES (" + si + ") ");
END;
END Test;
PROCEDURE Init*;
BEGIN
LinSimpleLog.Open;
Test;
END Init;
END DbtstT.
DbtstT.Test
Линковка
DevElfLinker.LinkDll libBBFB.so := Kernel+ Log Math Strings LinSimpleLog
Dates Files Services Dialog Fonts Ports Stores Sequencers Models Meta Converters Views
Controllers Properties Mechanisms Containers
Printers Printing Documents Windows StdDialog StdApi StdCmds HostFiles
HostRegistry HostFonts HostPorts OleData HostMechanisms HostWindows
HostPrinters StdCFrames HostCFrames HostDialog HostClipboard HostCmds
SqlDrivers SqlDB FibApi FibMisc FibErrors FibDriver
DbtstT#
В FibDriver заменил StdLog на Log.
Надо будет, наверное, удалить из FibApi вызовы WinApi, переделав динамическую загрузку dll/.so на статическую
с переключалкой в исходном коде для Win/Lin, чтобы получить межплатформенный вариант.
Подключенные модули при линковке тянут за собой много других модулей, какие из них можно заменить для облегчения бинарника?
Кроме того, линковка до конца не идет, выдается вообщение
Kernel.mainWnd not found (imported from HostWindows)