x86_64-w64-ming32-g++ file not recognized by objdump

Sisyphus sisyphus1@optusnet.com.au
Sun Aug 21 02:11:00 GMT 2011


----- Original Message ----- 
From: "Thomas D. Dean"

> #include <vector>
> #include <string>
> using namespace std;
> int main() {
>  vector<string> vs;
>  vs.push_back("asdf");
> }
>
> If I compile with g++, I get an executable that works, i.e. runs without
> error.  This file is recognized by objdump and cygcheck.
>
> If I compile with x86_64-w64-ming32-g++ -m64 t.cc -o t

I presume the 'ming32' is a typo.
Is the '-m64' necessary ?
What happens if you remove it from the command ?

I can't reproduce the error you get (either with or without '-m64'), though 
I'm just running mingw in the cmd.exe shell - not under Cygwin.

> the resulting executable produces an error message
>> ./t.exe
> t.exe: error while loading shared libraries: ?: cannot open shared
> object file: no such file or directory.
>> objdump -p ./t.exe
> objdump: ./t.exe: File format not recognized

I think that's to be expected - objdump expects to look at a 32-bit 
executable.
I get the same error when I run objdump on a 64-bit executable.
Try:
x86_64-w64-mingw32-objdump -p ./t.exe

Cheers,
Rob 


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list