|
|
Home » U++ TheIDE » U++ TheIDE: Compiling, Linking, Debugging of your packages » Problem compiling 32-bit apps with 64-bit MINGW
Problem compiling 32-bit apps with 64-bit MINGW [message #44565] |
Wed, 01 April 2015 04:42  |
Novo
Messages: 1392 Registered: December 2006
|
Ultimate Contributor |
|
|
I'm using TDM-GCC-64 (64-bit compiler on 64-bit Windows) and trying to compile a 32-bit version of my app.
I'm using the -m32 option with both compiler and linker.
The problem is with the resource compiler. It compiles into 64-bit resources.
windres.exe takes a --target option, which can be one from the list: pe-x86-64 pei-x86-64 pe-bigobj-x86-64 elf64-x86-64 elf64-l1om elf64-k1om pe-i386 pei-i386 elf32-i386 elf64-little elf64-big elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex.
There is no way to pass an option to the resource compiler, and there is only one GCC builder (I believe, TheIDE use to have both 32 and 64 bit builders for GCC).
Is there a way to fix that? I really need MINGW because I need GCC symbol demangling.
TIA
Regards,
Novo
[Updated on: Wed, 01 April 2015 04:44] Report message to a moderator
|
|
|
|
Re: Problem compiling 32-bit apps with 64-bit MINGW [message #44567 is a reply to message #44566] |
Wed, 01 April 2015 15:41   |
Novo
Messages: 1392 Registered: December 2006
|
Ultimate Contributor |
|
|
koldo wrote on Wed, 01 April 2015 06:13Hello Novo
There are TDM-GCC 32 and 64 bits. You can install both in different folders (MINGW32 and MINGW64 by default).
Hello koldo,
Thanks! Yes, I know, but TDM-GCC-64 is capable of compiling both 32 and 64 bit apps.
As a temporary solution I can install 32-bit version, but in general case it is not enough to have just a GCC builder. I can pass extra-arguments to compiler and linker, but windres.exe.
Thanks.
Regards,
Novo
|
|
|
Re: Problem compiling 32-bit apps with 64-bit MINGW [message #44568 is a reply to message #44565] |
Wed, 01 April 2015 17:59   |
 |
mirek
Messages: 14229 Registered: November 2005
|
Ultimate Member |
|
|
Novo wrote on Wed, 01 April 2015 04:42I'm using TDM-GCC-64 (64-bit compiler on 64-bit Windows) and trying to compile a 32-bit version of my app.
I'm using the -m32 option with both compiler and linker.
The problem is with the resource compiler. It compiles into 64-bit resources.
windres.exe takes a --target option, which can be one from the list: pe-x86-64 pei-x86-64 pe-bigobj-x86-64 elf64-x86-64 elf64-l1om elf64-k1om pe-i386 pei-i386 elf32-i386 elf64-little elf64-big elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex.
There is no way to pass an option to the resource compiler, and there is only one GCC builder (I believe, TheIDE use to have both 32 and 64 bit builders for GCC).
Is there a way to fix that? I really need MINGW because I need GCC symbol demangling.
TIA
Hi,
thanks for the info.
I guess the quick fix and sufficient is to change the build method. I can do that, but it should be relatively easy to do (and I do not want to download/install mingw-tdm right now). If you succeed, please let me know, I will patch trunk. If you have problems, please report as well - I will try to fix it myself ASAP.
On related note, how is mingw-tdm working for you? Which version have you downloaded? I am (for some time now) interested in bundling it with U++ once again....
Mirek
|
|
|
Re: Problem compiling 32-bit apps with 64-bit MINGW [message #45653 is a reply to message #44568] |
Sat, 19 December 2015 05:28   |
Novo
Messages: 1392 Registered: December 2006
|
Ultimate Contributor |
|
|
mirek wrote on Wed, 01 April 2015 11:59Novo wrote on Wed, 01 April 2015 04:42I'm using TDM-GCC-64 (64-bit compiler on 64-bit Windows) and trying to compile a 32-bit version of my app.
I'm using the -m32 option with both compiler and linker.
The problem is with the resource compiler. It compiles into 64-bit resources.
windres.exe takes a --target option, which can be one from the list: pe-x86-64 pei-x86-64 pe-bigobj-x86-64 elf64-x86-64 elf64-l1om elf64-k1om pe-i386 pei-i386 elf32-i386 elf64-little elf64-big elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex.
There is no way to pass an option to the resource compiler, and there is only one GCC builder (I believe, TheIDE use to have both 32 and 64 bit builders for GCC).
Is there a way to fix that? I really need MINGW because I need GCC symbol demangling.
TIA
Hi,
thanks for the info.
I guess the quick fix and sufficient is to change the build method. I can do that, but it should be relatively easy to do (and I do not want to download/install mingw-tdm right now). If you succeed, please let me know, I will patch trunk. If you have problems, please report as well - I will try to fix it myself ASAP.
On related note, how is mingw-tdm working for you? Which version have you downloaded? I am (for some time now) interested in bundling it with U++ once again....
Mirek
Hi Mirek,
Sorry for the delay with the answer. I just missed your message. E-mail notification doesn't work for me after the forum update.
I'm using mingw-tdm 4.9.2 for x64 target and 4.8.1 for x86. 5.1 is just too buggy, but you already know that at this time.
I still couldn't compile for x86 using 64-bit compiler. windres.exe is still not getting a --target option.
Thanks
Regards,
Novo
|
|
|
|
|
|
|
|
Re: Problem compiling 32-bit apps with 64-bit MINGW [message #47503 is a reply to message #47502] |
Tue, 24 January 2017 02:55   |
Melek
Messages: 16 Registered: January 2017 Location: Honduras
|
Promising Member |
|
|
Thanks for the prompt response and take the opportunity to indicate that I really loved this framework, that's why I'm trying it, although I'm adapting.
I tried EyeCare and Bumps. But the problem is the same, the file I see is compiled into resuource $ rc.o but throws the error that is incompatible with i386. Here is the output:
C:\AMS\upp\bin/TDM64/bin/ld.exe: i386:x86-64 architecture of input file
`C:/AMS/upp/out/examples/EyeCare/MINGW.Debug.Debug_Full.Gui. Main\ic
on$rc.o' is incompatible with i386 output
collect2.exe: error: ld returned 1 exit status
[Updated on: Tue, 24 January 2017 02:57] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
Re: Problem compiling 32-bit apps with 64-bit MINGW [message #47548 is a reply to message #47533] |
Fri, 27 January 2017 02:05  |
mr_ped
Messages: 826 Registered: November 2005 Location: Czech Republic - Praha
|
Experienced Contributor |
|
|
Melek wrote on Wed, 25 January 2017 22:16
But C ++ I like because the compiled files are created in machine language which supposes a security mayo as opposed to .Net and Java.
I'm not sure what is "mayo", but unless you have group of seasoned C++ developers with years of experience, it's pretty sure your C++ application will be much worse than Java/C# in terms of security (ie. much easier to exploit and containing many security vulnerabilities).
If you have several C++ senior developers and good development process in place, like security reviews, using valgrind and similar tools, penetration testing, etc... then you can produce secure software even with C++, but you have to spend considerable amount of budget on the security. Then again this true also for Java/C# at this level.
But if you just create some small app in few hours, then it's more likely the Java/C# will be somewhat secure even without paying attention to it, while C++ goes the opposite way, without paying the attention to it it will be almost surely insecure.
|
|
|
Goto Forum:
Current Time: Fri Mar 14 14:25:53 CET 2025
Total time taken to generate the page: 0.04314 seconds
|
|
|