Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] VS2008 : linking against OpenMPI: unresolved external symbols
From: Dr AD (drad1907_at_[hidden])
Date: 2012-06-26 12:56:11


Damien,
Thank you very much for your prompt reply.
Your comments helped me to find the proper settings. The thing that was
missing was CLR.

For other users that might have the same problem, here is the
configuration that worked (at least for Windows XP, VS2008 Pro):
//
// Configuration Properties -> Debugging : MPI Cluster Debugger
// MPIRun Working Directory : localhost
// MPIRun Command: C:\Program Files\OpenMPI_v1.6-win32\bin\mpiexec.exe
// MPIRun Arguments : -n 2 C:\MyFolder\MyProgram\Debug\program.exe
// C:\MyFolder\MyProgram\Debug\program.exe
//
// Configuration Properties -> General -> CLR Support: No CLR support
//
// C/C++ -> Additional Include Directories: C:\Program
Files\OpenMPI_v1.6-win32\include
// C/C++ -> Preprocessor-> Preprocessor Definitions:
// OMPI_IMPORTS
// OPAL_IMPORTS (it seems
that may be ommited)
// ORTE_IMPORTS (it seems
that may be ommited)
//
//Linker -> Additional Library Directories: C:\Program
Files\OpenMPI_v1.6-win32\lib
//Linker -> Additional Dependencies: libmpid.lib
// libopen-rted.lib
// libopen-pald.lib
// libmpi_cxxd.lib
//

On Tue, Jun 26, 2012 at 12:16 AM, Damien <damien_at_[hidden]> wrote:

> Really fast off the top of my head, LNK4248 and LNK2020 are
> Microsoft-specific C++/CLI warning for managed C++. Are you intending to
> use managed C++ in your app? That can do funny things to linker symbols.
>
> Also, you might need to have all three of OMPI_IMPORTS, OPAL_IMPORTS and
> ORTE_IMPORTS defined.
>
> Also, make sure you're not set to a 64-bit project type using 32-bit
> OpenMPI.
>
> Damien
>
>
> On 25/06/2012 8:57 PM, Dr AD wrote:
>
> Hello,
> I installed the windows binaries by running OpenMPI_v1.6-1_win32.exe
> In VS2008 professional I set the following project preferences:
>
> Configuration -> Properties -> Debugging : MPI Cluster Debugger
> MPIRun Working Directory : localhost/NUM PROCS TO LAUNCH
> MPIRun Command: C:\Program Files\OpenMPI_v1.6-win32\bin\mpiexec.exe
>
> C/C++ -> Additional Include Directories: C:\Program
> Files\OpenMPI_v1.6-win32\include
> C/C++ -> Preprocessor-> Preprocessor Definitions:
> OMPI_IMPORTS
>
> Linker -> Additioanl Library Directories: C:\Program
> Files\OpenMPI_v1.6-win32\lib
> Linker -> Additional Dependencies: libmpid.lib
> libopen-rted.lib
> libopen-pald.lib
> libmpi_cxxd.lib
>
> I get unresolved external symbols link errors, below:
>
> : warning LNK4248: unresolved typeref token (01000015) for
> 'ompi_datatype_t'; image may not run
> warning LNK4248: unresolved typeref token (01000016) for
> 'ompi_request_t'; image may not run
> f warning LNK4248: unresolved typeref token (01000017) for 'ompi_group_t';
> image may not run
> warning LNK4248: unresolved typeref token (01000018) for
> 'ompi_communicator_t'; image may not run
> warning LNK4248: unresolved typeref token (01000019) for 'ompi_win_t';
> image may not run
> warning LNK4248: unresolved typeref token (0100001B) for
> 'ompi_errhandler_t'; image may not run
> warning LNK4248: unresolved typeref token (0100001C) for 'ompi_info_t';
> image may not run
> warning LNK4248: unresolved typeref token (0100001D) for 'ompi_op_t';
> image may not run
> warning LNK4248: unresolved typeref token (01000022) for
> 'ompi_predefined_communicator_t'; image may not run
>
> error LNK2020: unresolved token (0A0003B5) *ompi_mpi_comm_null*
> error LNK2020: unresolved token (0A000486) *ompi_mpi_comm_world*
> error LNK2028: unresolved token (0A0004AF) "public: __thiscall
> MPI::Comm::Comm(void)" (??0Comm_at_MPI@@$$FQAE_at_XZ) referenced in function
> "public: __thiscall MPI::Intracomm::Intracomm(struct ompi_communicator_t
> *)" (??0Intracomm_at_MPI@@$$FQAE_at_PAUompi_communicator_t@@@Z)
> error LNK2001: unresolved external symbol "public: virtual void
> __thiscall MPI::Datatype::Free(void)" (?Free_at_Datatype@MPI@@UAEXXZ)
> error LNK2001: unresolved external symbol "public: virtual void
> __thiscall MPI::Win::Free(void)" (?Free_at_Win@MPI@@UAEXXZ)
> error LNK2001: unresolved external symbol _ompi_mpi_comm_null
> error LNK2019: unresolved external symbol "public: __thiscall
> MPI::Comm::Comm(void)" (??0Comm_at_MPI@@$$FQAE_at_XZ) referenced in function
> "public: __thiscall MPI::Intracomm::Intracomm(struct ompi_communicator_t
> *)" (??0Intracomm_at_MPI@@$$FQAE_at_PAUompi_communicator_t@@@Z)
> error LNK2001: unresolved external symbol _ompi_mpi_cxx_op_intercept
> error LNK2001: unresolved external symbol _ompi_mpi_comm_world
>
> Does anyone know how to fix this ? Thank you.
>
>
>
> _______________________________________________
> users mailing listusers_at_[hidden]http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>