Gee, that's too bad. I assumed that the 1.6.4 Windows build was delayed because it was a lower priority. Do you suppose this position was taken because there are no developers wishing to keep it alive?
-----Original Message----- From: users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] On Behalf Of Damien Hocking Sent: Thursday, February 21, 2013 10:00 AM To: Open MPI Users Subject: Re: [OMPI users] Windows C++ Linker Error "unresolved symbol" for MPI::Datatype::Free Well this is interesting. The linker can't find that because MPI::Datatype::Free isn't implemented on the Windows build (in datatype_inln.h). It's declared in datatype.h though. It's not there in the Linux version either, so I don't know where the Linux build is getting that symbol from, that link should fail too. Is the C++ version of OpenMPI actually broken overall? The Windows support is another issue. I think it's semi-officially deprecated. Damien On 20/02/2013 11:20 PM, Hartman, Todd W. wrote: > I'm trying to build a simple Open MPI application for Windows. I've installed the binaries for OpenMPI-v1.6.2 (64-bit). I've also installed Visual Studio 2010. The machine(s) are Windows 7 x64. > > > When I attempt to compile a simple program that uses MPI::Send(), I get a linker error saying that it cannot resolve MPI::Datatype::Free(). > > Here's a minimal example: > > --------------------------------------------------- > #include <mpi.h> > #include <iostream> > int main( int argc, char** argv ) { > MPI::Init(argc,argv); > > // Meant to run with 2 processes. > if (MPI::COMM_WORLD.Get_rank() == 0) { > int data; > MPI::COMM_WORLD.Recv(&data,1,MPI_INT,1,0); > std::cout << "received " << data << std::endl; > } else { > int data = 0xdead; > std::cout << "sending " << data << std::endl; > MPI::COMM_WORLD.Send(&data,1,MPI_INT,0,0); > } > > MPI::Finalize(); > } > --------------------------------------------------- > > When I compile it: > > mpic++ send_compile.cpp -o send_compile.exe -DOMPI_IMPORTS > mpic++ -DOPAL_IMPORTS -DORTE_IMPORTS > > > --------------------------------------------------- > Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for x64 > Copyright (C) Microsoft Corporation. All rights reserved. > > > > > cl : Command line warning D9035 : option 'o' has been deprecated and > will be removed in a future release send_compile.cpp Microsoft (R) > Incremental Linker Version 10.00.40219.01 Copyright (C) Microsoft > Corporation. All rights reserved. > > /out:send_compile.exe > /out:send_compile.exe > "/LIBPATH:C:\Program Files (x86)\OpenMPI_v1.6.2-x64/lib" > libmpi_cxx.lib > libmpi.lib > libopen-pal.lib > libopen-rte.lib > advapi32.lib > Ws2_32.lib > shlwapi.lib > send_compile.obj > send_compile.obj : error LNK2001: unresolved external symbol "public: > virtual void __cdecl MPI::Datatype::Free(void)" > (?Free@Datatype@MPI@@UEAAXXZ) send_compile.exe : fatal error LNK1120: > 1 unresolved externals > --------------------------------------------------- > > This program compiles and runs without complaint on an Ubuntu machine around here. I don't know what the problem is. Open MPI's documentation didn't say anything about adding the CPP defines (OMPI_IMPORTS, OPAL_IMPORTS, ORTE_IMPORTS) whose absence were causing other linker errors similar to this. Google found some items in the mailing list archive. I cannot find any information about this particular problem, though. > > I tried using dumpbin to get symbols that were in the .lib files installed by MPI, but didn't find any reference to that function name. I didn't find any answers looking in the MPI headers, either. > > I have a similar program in C that compiles and runs fine on this Windows machine. I don't know what I'm doing wrong with C++. Can someone point me in the right direction? Is there some documentation regarding getting things to work on Windows? The release notes don't address this problem, and I can't find any other documentation related to what might be different from *nix to Windows (WRT to Open MPI). > > Thanks. > > > todd. > > P.S. This is copied from a StackOverflow question I posted (http://stackoverflow.com/questions/14988099/open-mpi-c-link-error-mpidataty pefree-on-windows). Forgive the cross-posting. > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users _______________________________________________ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users
smime.p7s
Description: S/MIME cryptographic signature