Qt's g++ builds invalid executables.



  • Windows 7 64-bit
    MinGW 4.8 32-bit
    Qt Creator 2.8.1
    I'm not using the Qt libraries in this project.

    Issue history: "Windows Forum: MinGW C++11 app compiles, can't run outside IDE: 0xc000007b":http://forums.windowsforum.org/index.php?showtopic=51273

    Long story short, I have a project which only contains an empty main function - no includes or actual logic. It runs fine inside Qt Creator, but when I run it standalone I get a dialog:

    bq. The application was unable to start correctly (Oxc000007b). Click OK to close the application.

    To test, I tried running the makefile outside of Qt Creator. Lo and behold, I got an executable that worked. But when I tried to put it in Dr. Memory, I was told it's unsupported because it's 64-bit. It was 64-bit because the first g++ in my PATH was from 64-bit MinGW. I used this Batch script to eliminate that inconsistency:
    @setlocal
    set PATH=C:/Qt/Tools/mingw48_32/bin/;%PATH%

    mingw32-make -f Makefile.Debug
    endlocal@
    Now, when I use the script to compile, and then run the resulting executable, I get the same error dialog.

    What can I do about this?



  • These windows error codes sometimes do carry information:
    this Error Code means: 0xC000007B STATUS_INVALID_IMAGE_FORMAT ("windows error code document":http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-ERREF].pdf )

    This could mean that a 32 bit application tries to load a 64 bit dll.

    You should probably look into this issue with "dependency walker":http://www.dependencywalker.com/ or with "PEStudio":http://winitor.com/.



  • Somehow the link above does not work. so Here is the full link to the Microsoft Windows Error Code Document:

    @http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-ERREF].pdf@

    Copy the text an paste it to a browser! (it will download a pdf document)



  • Apparently it does depend on a 64-bit DLL, but I'm not yet understanding what I can do about it.

    I listed the Dependency Walker results, and my reaction to them, in the linked thread. They didn't seem to lead anywhere useful, but here they are again:

    @ Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
    Error: Modules with different CPU types were found.
    Warning: At least one delay-load dependency module was not found.
    Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.@

    @ API-MS-WIN-CORE-COM-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
    API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
    DCOMP.DLL
    GPSVC.DLL
    IESHIMS.DLL@

    PeStudio:

    @ The PointerToSymbolTable is Invalid (it should be 0)
    The NumberOfSymbols is Invalid (it should be 0)
    The image is NOT digitally signed with a Certificate
    The count (4) of imported Library is Suspicious
    The image imports 2 missing Librarie(s)
    The image Imports 4 Obsolete Symbol(s)
    The image imports 15 Blacklisted Functions (API)
    The image contains an Overlay (Offset: 0x0000D200, Size: 31048 Bytes)
    The Section (Name:.bss) is Empty (zero Byte on the Disk)
    The image does NOT use Data Execution Prevention (DEP) as Mitigation technique
    The image does NOT use Address Space Layout Randomization (ASLR) as Mitigation technique
    The image is Resource-less
    The image uses static Thread Local Storage (TLS)
    The image does NOT use Cookies placed on the Stack (GS) as Mitigation technique
    The image does NOT use Code Integrity
    The image is Terminal Server aware
    The size (64 Bytes) of the MS-DOS Header is standard
    The size (20 Bytes) of the File Header is standard
    The size (224 Bytes) of the Optional Header is standard
    The image has (0) registered Exception Handlers
    The Entry Point (0x000014E0) is in the First Section (Name:.text)
    The image contains 1660 Strings (of at least 5 characters )
    The image is target for a I386 (or higher) Machine
    The image is an Executable
    The expected Operating System Version is 4.0
    The Linker Version is 2.23
    The Image Version is 1.0
    The Subsystem Version is 4.0
    The Export Address Table (EAT) Directory is Empty
    The Resource Directory is Empty
    The Exception Directory is Empty
    The Security Directory is Empty
    The Relocation Directory is Empty
    The Debug Directory is Empty
    The Architecture Directory is Empty
    The Global Pointer Directory is Empty
    The Load Configuration Directory is Empty
    The Bound Import Directory is Empty
    The Delay Loaded Import Directory is Empty
    The COM Runtime Directory is Empty
    The image Imports 66 Symbol(s)
    The image is isolation aware AND should be isolated
    A cave has been detected in the file (Offset: 0x00006A28, Size: 472 bytes)
    A cave has been detected in the file (Offset: 0x00006C54, Size: 428 bytes)
    A cave has been detected in the file (Offset: 0x00007554, Size: 172 bytes)
    A cave has been detected in the file (Offset: 0xFFFFFF30, Size: 208 bytes)
    A cave has been detected in the file (Offset: 0x00008004, Size: 508 bytes)
    A cave has been detected in the file (Offset: 0x00008234, Size: 460 bytes)
    A cave has been detected in the file (Offset: 0x00008420, Size: 480 bytes)
    A cave has been detected in the file (Offset: 0x00008658, Size: 424 bytes)
    A cave has been detected in the file (Offset: 0x0000C0A3, Size: 349 bytes)
    A cave has been detected in the file (Offset: 0x0000C6A7, Size: 345 bytes)
    A cave has been detected in the file (Offset: 0x0000CC62, Size: 414 bytes)
    A cave has been detected in the file (Offset: 0x0000CE38, Size: 456 bytes)
    The image on the disk contains 5121 unused Bytes (Caves)
    The image targets 32-bit Processor
    The image uses Structured Exception Handling (SEH)@

    Imported Libraries (4)
    @libgcc_s_dw2-1.dll,Implicit,4,n/a
    kernel32.dll,Implicit,25,6.1.7601.18229
    msvcrt.dll,Implicit,34,7.0.7601.17744
    libstdc++-6.dll,Implicit,3,n/a@



  • I know my reply is a bit late... But have you been able to solve the issue?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.