almindor / lnet

Lightweight Networking library written in Free Pascal.
64 stars 29 forks source link

QT5 LNet installation error: Forward declaration not solved #7

Open alanphys opened 4 years ago

alanphys commented 4 years ago

Problem Trying to install lnet in Lazarus from the online package manager and from git gives

lclnet.pas(45,15) Error: Forward declaration not solved "HandleIgnoreError(TLHandle);" lclnet.pas(46,15) Error: Forward declaration not solved "HandleIgnoreWrite(TLHandle);" lclnet.pas(47,15) Error: Forward declaration not solved "HandleIgnoreRead(TLHandle);" lclnet.pas(48,15) Error: Forward declaration not solved "InternalUnplugHandle(TLHandle);" lclnet.pas(50,15) Error: Forward declaration not solved "HandleEvents(Int64;LongWord);" lclnet.pas(58,14) Error: Forward declaration not solved "AddHandle(TLHandle):Boolean;"

System Fedora 30 KDE 5/QT 5.12.4 Lazarus 2.0.6 LNet 0.66

Cause QT5 not defined in lclnet.pas

Workaround Add {$ifdef LCLQT5} {$i lclgtkeventer.inc} // identical code ;) {$endif} before end statement in lclnet.pas

Regards Alan

almindor commented 4 years ago

Hey, I think the preprocessor ifdefs changed in newer lazarus and need to be updated. You need to use the QT "lcl" eventer for this tho otherwise it won't work as the main "event loop" won't connect.

I find it interesting that the gtk one worked for you.

Ales

st 5. 2. 2020 o 3:03 Alan Chamberlain notifications@github.com napísal(a):

Problem Trying to install lnet in Lazarus from the online package manager and from git gives

lclnet.pas(45,15) Error: Forward declaration not solved "HandleIgnoreError(TLHandle);" lclnet.pas(46,15) Error: Forward declaration not solved "HandleIgnoreWrite(TLHandle);" lclnet.pas(47,15) Error: Forward declaration not solved "HandleIgnoreRead(TLHandle);" lclnet.pas(48,15) Error: Forward declaration not solved "InternalUnplugHandle(TLHandle);" lclnet.pas(50,15) Error: Forward declaration not solved "HandleEvents(Int64;LongWord);" lclnet.pas(58,14) Error: Forward declaration not solved "AddHandle(TLHandle):Boolean;"

System Fedora 30 KDE 5/QT 5.12.4 Lazarus 2.0.6 LNet 0.66

Cause QT5 not defined in lclnet.pas

Workaround Add {$ifdef LCLQT5} {$i lclgtkeventer.inc} // identical code ;) {$endif} before end statement in lclnet.pas

Regards Alan

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/almindor/lnet/issues/7?email_source=notifications&email_token=AAO4J3W3WQB7JJITZA565Q3RBKFIDA5CNFSM4KQIE6T2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4ILE6A5Q, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAO4J3SEKVO2MERKLJ5QGO3RBKFIDANCNFSM4KQIE6TQ .

alanphys commented 4 years ago

Yes, the new version defines LCLQT5. I'm not seeing an lclqteventer.inc. I just copied your existing LCLQT declaration which uses the lclgtkeventer.inc.

So far everything seems to be running OK, but I am only using the TLHTTPServer component. Regards Alan