On 8/21/2011 10:09, Sisyphus wrote: > > ----- Original Message ----- From: "Thomas D. Dean" > >> #include >> #include >> using namespace std; >> int main() { >> vector 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 > Hi Thomas, you are probably missing the runtime DLLs from path. They should be found in "/usr/x86_64-w64-mingw32/sys-root/mingw/bin".