How to be sure my executable and dlls are both 32-bit
Posted: Fri Jun 15, 2018 9:50 pm
I'm posting this question on the wxCodeLite forum because the people here are likeliest to use the same coding environment that I use.
I have a large, complicated CodeLite workspace that until recently was compiling and building fine. Then, after a disastrous execution, my program hung and the only way to recover was cycling power. Very bad. Now whenever I run, I get error number 0xc000007b, which seems to be a default error number when no other error applies.
There are many sites online that offer suggestions to fix the problem. One of these sites hints that my dlls might be built for 32-bit execution, but the executable is being built for 64 bits. Or vice versa.
So I need to be sure that I am doing everything possible during compiling, linking, and building, to produce an entirely 32-bit executable.
My coding environment is as follows.
* Development and target execution platform: Windows 10, currently in Test Mode.
* MinGW 32-bit: downloaded from https://sourceforge.net/projects/mingw/ last update 2018-04-03
* wxWidgets: downloaded from https://www.wxwidgets.org/downloads/ latest development release, version 3.1.1. Compiled fresh on my computer using the MinGW 32-bit version above, and the link files that came with wxWidgets. The DOS commands to produce the Debug and Release versions were:
* CodeLite: downloaded from https://downloads.codelite.org/ Weekly build, version 12.0.3; I downloaded the "Windows Installer 64 bit," because I didn't see any other Windows option. I'm not sure if "64 bit" here is referring to the executable itself being 64 bits, or the program(s) it produces being 64 bits.
Is there anything else I need to do to verify my code produces a 32-bit program? I did not see any compiler or linker options in CodeLite.
Thanks!
Colleen
I have a large, complicated CodeLite workspace that until recently was compiling and building fine. Then, after a disastrous execution, my program hung and the only way to recover was cycling power. Very bad. Now whenever I run, I get error number 0xc000007b, which seems to be a default error number when no other error applies.
There are many sites online that offer suggestions to fix the problem. One of these sites hints that my dlls might be built for 32-bit execution, but the executable is being built for 64 bits. Or vice versa.
So I need to be sure that I am doing everything possible during compiling, linking, and building, to produce an entirely 32-bit executable.
My coding environment is as follows.
* Development and target execution platform: Windows 10, currently in Test Mode.
* MinGW 32-bit: downloaded from https://sourceforge.net/projects/mingw/ last update 2018-04-03
* wxWidgets: downloaded from https://www.wxwidgets.org/downloads/ latest development release, version 3.1.1. Compiled fresh on my computer using the MinGW 32-bit version above, and the link files that came with wxWidgets. The DOS commands to produce the Debug and Release versions were:
Code: Select all
echo on
cls
set PATH=C:\MinGW\bin;%PATH%
set WXWIN=C:\wxWidgets
set WXCFG=gcc_dll\mswud
C:
cd %WXWIN%\build\msw
IF EXIST C:\wxWidgets\lib\gcc_lib\mswu\wx\setup-old.h del C:\wxWidgets\lib\gcc_lib\mswu\wx\setup-old.h
IF EXIST C:\wxWidgets\lib\gcc_dll\mswu\wx\setup-old.h del C:\wxWidgets\lib\gcc_dll\mswu\wx\setup-old.h
IF EXIST C:\wxWidgets\lib\gcc_lib\mswu\wx\setup.h ren C:\wxWidgets\lib\gcc_lib\mswu\wx\setup.h setup-old.h
IF EXIST C:\wxWidgets\lib\gcc_dll\mswu\wx\setup.h ren C:\wxWidgets\lib\gcc_dll\mswu\wx\setup.h setup-old.h
mingw32-make -f makefile.gcc setup_h SHARED=1 UNICODE=1 BUILD=release VENDOR=cl
mingw32-make -j8 -f Makefile.gcc SHARED=1 UNICODE=1 BUILD=release VENDOR=cl CXXFLAGS="-fno-keep-inline-dllexport -std=c++11"
C:
cd C:\wxWidgets\build\msw
IF EXIST C:\wxWidgets\lib\gcc_lib\mswud\wx\setup-old.h del C:\wxWidgets\lib\gcc_lib\mswud\wx\setup-old.h
IF EXIST C:\wxWidgets\lib\gcc_dll\mswud\wx\setup-old.h del C:\wxWidgets\lib\gcc_dll\mswud\wx\setup-old.h
IF EXIST C:\wxWidgets\lib\gcc_lib\mswud\wx\setup.h ren C:\wxWidgets\lib\gcc_lib\mswud\wx\setup.h setup-old.h
IF EXIST C:\wxWidgets\lib\gcc_dll\mswud\wx\setup.h ren C:\wxWidgets\lib\gcc_dll\mswud\wx\setup.h setup-old.h
mingw32-make -f makefile.gcc setup_h SHARED=1 UNICODE=1 BUILD=debug VENDOR=cl
mingw32-make -j8 -f Makefile.gcc SHARED=1 UNICODE=1 BUILD=debug VENDOR=cl CXXFLAGS="-fno-keep-inline-dllexport -std=c++11"
echo Done!
Is there anything else I need to do to verify my code produces a 32-bit program? I did not see any compiler or linker options in CodeLite.
Thanks!
Colleen