Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2014-03

Lazarus 1.2

4 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Antonio Fortuny

Hi FOlks.

I'm testing Lazarus 1.2 on a W7 64bit with cross compilation for Win64 and WinCE as Lazarus is Win32. All three downloaded and installed without problems
With a little project, no problems at all, it compiles and runs on all three platforms.
So far so good.
Now, real projects but packages first: they compile on all platforms and more specifically Indy 10.6.0.1
two projects copied from a Win32 Lazarus 1.0.12 (current production on 2 different platforms one for Win32+WinCE and a second for Win64): On production: compile and run everywhere. This my current production environment

Now copy both projects to Lazarus 1.2 machine:
project one compiles with Indy on Win32 and Win64 (WinCE is not an option for this project) only adapting the compiler search path
- including the Indy package in the required packages fails to find any Indy unit
- including the Indy lib in the complier search pat and removing the package name compiles nicely (!!??)

project two: (has to run on all three platforms) compilation for Win32 (the 2 other platforms not yet testes) fails with error ...\..\..\..\Lib\uservertcpconnect2.pas(9,3) Fatal: Can't find unit IdTCPClient used by uservertcpconnect2
The unit uservertcpconnect2 is referenced in both projects and .o and ..ppu are in the Indy lib folder and only once in the machine
- Naming Indy in the required packages changes nothing
- including the Indy lib in the complier search path does not solve the problem neither.

I've made a little test project having nothing but a close button. The previous uni is included,
- add Indy lib into compiler search path
- add the unit in the uses clause
The project compiles and runs OK

Where could the difference be located ?

Antonio.

---
Ce courrier ?lectronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active. http://www.avast.com

Reply by email

Antonio Fortuny
to Antonio Fortuny

Le 20/03/2014 12:14, Antonio Fortuny a ?crit :

Show quoted text 40 lines
Hi FOlks. I'm testing Lazarus 1.2 on a W7 64bit with cross compilation for Win64 and WinCE as Lazarus is Win32. All three downloaded and installed without problems With a little project, no problems at all, it compiles and runs on all three platforms. So far so good. Now, real projects but packages first: they compile on all platforms and more specifically Indy 10.6.0.1 two projects copied from a Win32 Lazarus 1.0.12 (current production on 2 different platforms one for Win32+WinCE and a second for Win64): On production: compile and run everywhere. This my current production environment Now copy both projects to Lazarus 1.2 machine: project one compiles with Indy on Win32 and Win64 (WinCE is not an option for this project) only adapting the compiler search path - including the Indy package in the required packages fails to find any Indy unit - including the Indy lib in the complier search pat and removing the package name compiles nicely (!!??) project two: (has to run on all three platforms) compilation for Win32 (the 2 other platforms not yet testes) fails with error ...\..\..\..\Lib\uservertcpconnect2.pas(9,3) Fatal: Can't find unit IdTCPClient used by uservertcpconnect2 The unit uservertcpconnect2 is referenced in both projects and .o and ..ppu are in the Indy lib folder and only once in the machine - Naming Indy in the required packages changes nothing - including the Indy lib in the complier search path does not solve the problem neither. I've made a little test project having nothing but a close button. The previous uni is included, - add Indy lib into compiler search path - add the unit in the uses clause The project compiles and runs OK Where could the difference be located ?

Found a workaroud:
- make a new application
-- adjust search path and all options to what they must be
- add in the project uses clause the problematic unit
- compile (it workd)
- add all needed packages except Indy
- add all units of the project in the new project
- add all necessary CreateForm (copy paste from original project
- make the rest of the project unit identical to the original one
- complie: works nicely for Win32
- run: runs nicely as well 8-)
I'll make a try with Win64 and WinCE. I'll let you know what happens

Antonio.

Show quoted text 17 lines
Antonio. --- Ce courrier ?lectronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active. http://www.avast.com -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

---
Ce courrier ?lectronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active. http://www.avast.com

Reply by email

Mattias Gaertner
to Antonio Fortuny
[...] > - including the Indy package in the required packages fails to find > any Indy unit

What fails exactly? Compiling? Code navigation?
Have you tried compiling with -vut?

> - including the Indy lib in the complier search pat and removing the > package name compiles nicely (!!??)

Either the indy.lpk has a bug (code navigation fails) or you got the fpc bug (compile indy package twice) or you messed up your files or a combination.

Show quoted text 17 lines
> project two: (has to run on all three platforms) compilation for Win32 > (the 2 other platforms not yet testes) fails with error > ...\..\..\..\Lib\uservertcpconnect2.pas(9,3) Fatal: Can't find unit > IdTCPClient used by uservertcpconnect2 > The unit uservertcpconnect2 is referenced in both projects and .o and > ..ppu are in the Indy lib folder and only once in the machine > - Naming Indy in the required packages changes nothing > - including the Indy lib in the complier search path does not solve > the problem neither. > > I've made a little test project having nothing but a close button. The > previous uni is included, > - add Indy lib into compiler search path > - add the unit in the uses clause > The project compiles and runs OK > > Where could the difference be located ?

Compile with -vut and compare the Compiler Options / Show Options .

Show quoted text 5 lines
Found a workaroud: - make a new application -- adjust search path and all options to "what they must be"

Meaning?

Mattias

Reply by email

Antonio Fortuny
to Mattias Gaertner

Thanks again Mattias.
Forget about all trouble. In fact it was a very tiny typing error in the compiler search path revealed by the -vut but invisible otherwise. This solved the problem. 8-)
Remaking the project worked too, but it is longer. :-[

This false problem apart, all three platforms produce executables which work in all three platforms.
Really nice.

Very good job done guys, congratulations. I'm impressed.

Antonio.

---
Ce courrier ?lectronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active. http://www.avast.com

Reply by email