Archived
This forum has been archived. Please start a new discussion on GitHub.
Ice & Qt Opensource on Windows
Hi All,
I am trying to compile a project written in Qt4.1 using the open source windows version. The project also uses Ice obviously
The problem is with MinGW (which Qt4.1 uses). When I try to link my project with the MSVC7.1 Ice libraries I get about 10 A4 pages worth of "undefined reference" errors. The same is true if I try to link against the VC6.0 package.
I assume this is a compability problem with using MinGW compiler and linking to a MCVS7.1 library? However, my project also links with the "python" library which itself is compiled with a MSVC compiler (7.1 I think) so why is Ice incompatible?
Oh, I also get the annoying "Only multi-threaded dll's can be built with Ice" message. To get around this I just comment out the relevant code in the config.h file.
I am trying to compile a project written in Qt4.1 using the open source windows version. The project also uses Ice obviously
The problem is with MinGW (which Qt4.1 uses). When I try to link my project with the MSVC7.1 Ice libraries I get about 10 A4 pages worth of "undefined reference" errors. The same is true if I try to link against the VC6.0 package.
I assume this is a compability problem with using MinGW compiler and linking to a MCVS7.1 library? However, my project also links with the "python" library which itself is compiled with a MSVC compiler (7.1 I think) so why is Ice incompatible?
Oh, I also get the annoying "Only multi-threaded dll's can be built with Ice" message. To get around this I just comment out the relevant code in the config.h file.
0
Comments
-
Paul Drummond wrote:Oh, I also get the annoying "Only multi-threaded dll's can be built with Ice" message. To get around this I just comment out the relevant code in the config.h file.
This warning is there for a reason--don't comment it out! You must use multi-threaded DLLs with Ice, otherwise your application won't work.
What undefined references do you get? Without seeing the actual link errors, it's hard to tell what's going wrong.0 -
I just looked up MinGW, this seems to be a GCC version for Windows, right? Does this version of GCC have a C++ binary format that is compatible with Visual C++ 6.0 or 7.1? If not, then you cannot use MinGW together with Visual C++ libraries. Instead, you would have to try to compile Ice using MinGW from the sources. Unfortunately, we cannot be of any assistance with this, as we do not support GCC on Windows.Paul Drummond wrote:I assume this is a compability problem with using MinGW compiler and linking to a MCVS7.1 library? However, my project also links with the "python" library which itself is compiled with a MSVC compiler (7.1 I think) so why is Ice incompatible?
Ice is a C++ application, while Python is written in C only. The C binary APIs of different compilers are usually compatible, but the C++ binary APIs are usually not.0 -
marc wrote:This warning is there for a reason--don't comment it out! You must use multi-threaded DLLs with Ice, otherwise your application won't work.
My project does use multi-threaded libraries - it just doesn't define _DLL or _MT!marc wrote:Ice is a C++ application, while Python is written in C only. The C binary APIs of different compilers are usually compatible, but the C++ binary APIs are usually not.
Thank you for clearing that up - I was confused why Python would link but Ice wouln't - now I know. I forgot Python was C only - silly me!
So I need to compile Ice using MinGW - how hard can it be ???0