Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 6

Qt-interest Archive, March 2002
LGPL multi-platform sw


Message 1 in thread

Hi all, 
  we are developing a LGPL software under Linux and other unixes 
(see http://nusmv.irst.itc.it ).  

We are planning now to realize a GUI for this software, with the 
strong requirement to keep a high portability to a large number of 
platforms (of course the unixes, but also win and mac). 
From this point of view QT seems to be an ideal technology (and 
smart, with a very good development tools, complete and high-quality 
api, binding to other languages, and so forth and so on.) 

But the Windows non-commericial version of QT3.0 is time-limited, and 
it seems it is actually dependent from MS Visual Studio environment, 
which we would like to keep away from out desktops if it were 
possible. 

So finally questions are:
1) How do you deal with opensource software development under windows 
using QT3? 
2) Is it possible to compile QT3 under windows using cygwin? If yes, 
how do you deal with the license aspects? 
3) Why should you need MSVS6.0 to compile a QT-based software? QT 
should be a separate library (a dll or a lib, with a set of include 
files and nothing more) to be linked with the QT-based software, 
isn't it? So the actual work shoud be performed by the linker only... 


Many thanks in advance. 
roberto

------------------------------------------------------
Roberto Cavada
ITC-irst  (Istituto per la Ricerca Scientifica e Tecnologica)
Divisione Sistemi di Ragionamento Automatico - Gruppo Metodi Formali
Via Sommarive, 18 - 38050 Povo (TN)   (http://www.irst.itc.it)  
+39-0461-314321  cavada@irst.itc.it  http://sra.itc.it/people/cavada/
------------------------------------------------------


Message 2 in thread

> So finally questions are:
> 1) How do you deal with opensource software development under windows 
> using QT3? 

You can either use cygwin (this one usually requires X11 as well, so
you need XFree on Win to use your app).
Or you can make a try at porting to native platform, it can be
done using f.e. mingw (Minimalist gnu on sourceforge) and/or a layer
for XLib available on sourceforge as well. Look on KDE-Cygwin ML archive
(lists.kde.org) for "native win32" or similar keywords.


> 2) Is it possible to compile QT3 under windows using cygwin? If yes, 
> how do you deal with the license aspects? 

As long as you use the GPL-X11 version and release your code under
GPL there should be no licensing issues. You don't get support for
that kind of development environment from QT (except this list and
kde-cygwin list).

> 3) Why should you need MSVS6.0 to compile a QT-based software? QT 
> should be a separate library (a dll or a lib, with a set of include 
> files and nothing more) to be linked with the QT-based software, 
> isn't it? So the actual work shoud be performed by the linker only... 

I think because of the commercial support, I don't know how QT ported
the library to win32 platform but probably it was much easier using
MSVC than gcc (I think it must be very old decision, maybe there was no
support for gcc on win32 at that time). Maybe the IDE was another reason
as they support Borland as well (But you can use other compilers with
MSVC as well, search the ML archive for more information).

Regards,

Reinhard Katzmann


Message 3 in thread

Reinhard Katzmann wrote:

>> 3) Why should you need MSVS6.0 to compile a QT-based software? QT 
>> should be a separate library (a dll or a lib, with a set of include 
>> files and nothing more) to be linked with the QT-based software, 
>> isn't it? So the actual work shoud be performed by the linker only... 
>
>
> I think because of the commercial support, I don't know how QT ported
> the library to win32 platform but probably it was much easier using
> MSVC than gcc (I think it must be very old decision, maybe there was no
> support for gcc on win32 at that time). Maybe the IDE was another reason
> as they support Borland as well (But you can use other compilers with
> MSVC as well, search the ML archive for more information).

I think the decision is not outdated or even wrong. They had to choose 
one platform and they choose the biggest one Visual Studio. There is non 
commercial version of Qt 3 as far as I know, only an evaluation release. 
There is a 2.3 release called non commercial, but that still has the 
Visual Studio dependency, if you purchase a license for Qt you get the 
sourcecode for the library and can use any compiler/IDE your heart 
desires (I know that Borland is support, probably gcc as well).

/Mauritz
Underscore AB


Message 4 in thread

Hi,

> 3) Why should you need MSVS6.0 to compile a QT-based software? QT
> should be a separate library (a dll or a lib, with a set of include
> files and nothing more) to be linked with the QT-based software,
> isn't it? So the actual work shoud be performed by the linker only...

C++ compilers are usually not binary compatible, because of name
mangling and structure layout.

Dimitri


Message 5 in thread

On Friday 15 March 2002 08:32, you wrote:
>  C++ compilers are usually not binary compatible, because of name
>  mangling and structure layout.
Yes, you are right if you consider a statically linked library. 
If you consider a shared object (or a dll, in win32 terminology) 
linking is wrapped by the OS loader - so ideally there is no need for 
recompilation. Is it?
roberto
 


Message 6 in thread

On Friday 15 March 2002 03:54 am, Roberto Cavada wrote:
> On Friday 15 March 2002 08:32, you wrote:
> >  C++ compilers are usually not binary compatible, because of name
> >  mangling and structure layout.
>
> Yes, you are right if you consider a statically linked library.
> If you consider a shared object (or a dll, in win32 terminology)
> linking is wrapped by the OS loader - so ideally there is no need for
> recompilation. Is it?

Yes there is.  A C++ DLL compiled by MSVC++ will not be usable by code 
compiled with a compiler that mangles names differently.  G++ mangles names 
differently so the linker would not be able to map G++ references with VC++ 
entry points.

-K