Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Windows CMake build problems ... (cont.)
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2010-01-25 08:44:54


Should this kind of info be added to README.windows?

On Jan 25, 2010, at 4:34 AM, <cjohnson_at_[hidden]> <cjohnson_at_[hidden]> wrote:

> Thanks, that second part about the wrappers was what I was looking for.
>
> Charlie ...
>
> -------- Original Message --------
> Subject: Re: [OMPI users] Windows CMake build problems ... (cont.)
> From: Shiqing Fan <fan_at_[hidden]>
> Date: Mon, January 25, 2010 2:09 am
> To: cjohnson_at_[hidden]
> Cc: Open MPI Users <users_at_[hidden]>
>
>
> Hi Charlie,
>
> Actually, to compile and link your application with Open MPI on Windows
> is similar as on Linux. You have to link your application against the
> generated Open MPI libraries, e.g. libopen-mpi.lib (don't forget the
> suffix 'd' if you build debug version of the OMPI libraries, e.g.
> libopen-mpid.lib).
>
> But according to the information you provided, I assume that you only
> added the search path into the project, that's not enough, you should
> probably add the library names into "Project Property Pages" ->
> "Configuration Properties" -> Linker -> Input -> "Additional
> Dependencies", normally only libopen-mpi.lib (or libopen-mpid.lib) would
> be enough, so that Visual Studio will know which libraries to link to.
>
> Besides, the Open MPI compiler wrappers should also work on Windows, in
> this case you just need to open a "Visual Studio command prompt" with
> the Open MPI path env added (e.g. "set PATH=c:\Program
> Files\OpenMPI_v1.4\bin;%PATH%"), and simply run command like:
>
> > mpicc app.c
>
> and
>
> > mpirun -np 2 app.exe
>
>
> Please note that, before executing the application, Open MPI has to be
> installed somewhere either by build the "INSTALL" project or by running
> the generated installer, so that the correct Open MPI folder structure
> could be created.
>
>
> Regards,
> Shiqing
>
>
> cjohnson_at_[hidden] wrote:
> > OK, so I'm a little farther on and perplexed.
> >
> > As I said, Visual C++ 2005 (release 8.0.50727.867) build
> > of OpenMPI 1.4, using CMake 2.6.4, built everything and it all linked.
> >
> > Went ahead and built the PACKAGE item in the OpenMPI.sln project,
> > which made a zip file and an installer (although it was not obvious
> > where to look for this , what its name was, etc., I figured it out by
> > dates on files).
> >
> > Another thing that''s not obvious, is how to shoehorn your code into a
> > VCC project that will successfully build.
> >
> > I created a project from existing files in a place where the include
> > on the mpi.h would be found and examples, etc. did compile.
> >
> > However, they did not find any of the library routines. Link errors.
> >
> > So, I added in the generated libraries location into the search
> > locations for libraries.
> >
> > No good.
> >
> > So, I added all of the generated libraries into the VCC project I created.
> >
> > No good.
> >
> > How does one do this (aside from rigging up something through CMake,
> > cygwin, minGW, or MS SFU)?
> >
> > Charlie ...
> >
> >
> > -------- Original Message --------
> > Subject: Re: [OMPI users] Windows CMake build problems ... (cont.)
> > From: Shiqing Fan <fan_at_[hidden]>
> > Date: Fri, January 15, 2010 2:56 am
> > To: cjohnson_at_[hidden]
> > Cc: Open MPI Users <users_at_[hidden]>
> >
> >
> > Hi Charlie,
> >
> > Glad to hear that you compiled it successfully.
> >
> > The error you got with 1.3.4 is a bug that the CMake script didn't
> > set
> > the SVN information correctly, and it has been fixed in 1.4 and later.
> >
> >
> > Thanks,
> > Shiqing
> >
> >
> > cjohnson_at_[hidden] wrote:
> > > Yes that was it.
> > >
> > > A much improved result now from CMake 2.6.4, no errors from
> > compiling
> > > openmpi-1.4:
> > >
> > > 1>libopen-pal - 0 error(s), 9 warning(s)
> > > 2>libopen-rte - 0 error(s), 7 warning(s)
> > > 3>opal-restart - 0 error(s), 0 warning(s)
> > > 4>opal-wrapper - 0 error(s), 0 warning(s)
> > > 5>libmpi - 0 error(s), 42 warning(s)
> > > 6>orte-checkpoint - 0 error(s), 0 warning(s)
> > > 7>orte-ps - 0 error(s), 0 warning(s)
> > > 8>orted - 0 error(s), 0 warning(s)
> > > 9>orte-clean - 0 error(s), 0 warning(s)
> > > 10>orterun - 0 error(s), 3 warning(s)
> > > 11>ompi_info - 0 error(s), 0 warning(s)
> > > 12>ompi-server - 0 error(s), 0 warning(s)
> > > 13>libmpi_cxx - 0 error(s), 61 warning(s)
> > > ========== Build: 13 succeeded, 0 failed, 1 up-to-date, 0 skipped
> > > ==========
> > >
> > > And only one failure from compiling openmpi-1.3.4 (the ompi_info
> > project):
> > >
> > > > 1>libopen-pal - 0 error(s), 9 warning(s)
> > > > 2>libopen-rte - 0 error(s), 7 warning(s)
> > > > 3>opal-restart - 0 error(s), 0 warning(s)
> > > > 4>opal-wrapper - 0 error(s), 0 warning(s)
> > > > 5>orte-checkpoint - 0 error(s), 0 warning(s)
> > > > 6>libmpi - 0 error(s), 42 warning(s)
> > > > 7>orte-ps - 0 error(s), 0 warning(s)
> > > > 8>orted - 0 error(s), 0 warning(s)
> > > > 9>orte-clean - 0 error(s), 0 warning(s)
> > > > 10>orterun - 0 error(s), 3 warning(s)
> > > > 11>ompi_info - 3 error(s), 0 warning(s)
> > > > 12>ompi-server - 0 error(s), 0 warning(s)
> > > > 13>libmpi_cxx - 0 error(s), 61 warning(s)
> > > > ========== Rebuild All: 13 succeeded, 1 failed, 0 skipped
> > ==========
> > >
> > > Here's the listing from the non-linking project:
> > >
> > > 11>------ Rebuild All started: Project: ompi_info, Configuration:
> > > Debug Win32 ------
> > > 11>Deleting intermediate and output files for project 'ompi_info',
> > > configuration 'Debug|Win32'
> > > 11>Compiling...
> > > 11>version.cc
> > > 11>..\..\..\..\openmpi-1.3.4\ompi\tools\ompi_info\version.cc(136) :
> > > error C2059: syntax error : ','
> > > 11>..\..\..\..\openmpi-1.3.4\ompi\tools\ompi_info\version.cc(147) :
> > > error C2059: syntax error : ','
> > > 11>..\..\..\..\openmpi-1.3.4\ompi\tools\ompi_info\version.cc(158) :
> > > error C2059: syntax error : ','
> > > 11>param.cc
> > > 11>output.cc
> > > 11>ompi_info.cc
> > > 11>components.cc
> > > 11>Generating Code...
> > > 11>Build log was saved at
> > > "file://c:\prog\mon\ompi\tools\ompi_info\ompi_info.dir\Debug\BuildLog.htm
> > <file:///c:/prog/mon/ompi/tools/ompi_info/ompi_info.dir/Debug/BuildLog.htm>"
> > > 11>ompi_info - 3 error(s), 0 warning(s)
> > >
> > > Thank you Shiqing !
> > >
> > > Charlie ...
> > >
> > > -------- Original Message --------
> > > Subject: Re: [OMPI users] Windows CMake build problems ... (cont.)
> > > From: Shiqing Fan <fan_at_[hidden]>
> > > Date: Thu, January 14, 2010 11:20 am
> > > To: Open MPI Users <users_at_[hidden]>,
> > > cjohnson_at_[hidden]
> > >
> > >
> > > Hi Charlie,
> > >
> > > The problem turns out to be the different behavior of one CMake
> > > macro in
> > > different version of CMake. And it's fixed in Open MPI trunk with
> > > r22405. I also created a ticket to move the fix over to 1.4
> > > branch, see
> > > #2169: https://svn.open-mpi.org/trac/ompi/ticket/2169 .
> > >
> > > So you could either switch to use OMPI trunk or use CMake 2.6 to
> > > solve
> > > the problem. Thanks a lot.
> > >
> > >
> > > Best Regards,
> > > Shiqing
> > >
> > >
> > > cjohnson_at_[hidden] wrote:
> > > > The OpenMPI build problem I'm having occurs in both OpenMPI 1.4
> > > and 1.3.4.
> > > >
> > > > I am on a Windows 7 (US) Enterprise (x86) OS on an HP system with
> > > > Intel core 2 extreme x9000 (4GB RAM), using the 2005 Visual
> > > Studio for
> > > > S/W Architects (release 8.0.50727.867).
> > > >
> > > > [That release has everything the platform SDK would have.]
> > > >
> > > > I'm using CMake 2.8 to generate code, I used it correctly,
> > > pointing at
> > > > the root directory where the makelists are located for the source
> > > side
> > > > and to an empty directory for the build side: did configure,
> > _*I did
> > > > not click debug this time as suggested by Shiqing*_, configure
> > > again,
> > > > generate and opened the OpenMPI.sln file created by CMake. Then I
> > > > right-clicked on the "ALL_BUILD" project and selected "build". Then
> > > > did one "rebuild", just in case build order might get one more
> > > success
> > > > (which it seemed to, but I could not find).
> > > >
> > > > 2 projects built, 12 did not. I have the build listing. [I'm
> > > afraid of
> > > > what the mailing list server would do if I attached it to this
> > > email.]
> > > >
> > > > All the compiles were successful (warnings at most.) All the errors
> > > > were were from linking the VC projects:
> > > >
> > > > *1>libopen-pal - 0 error(s), 9 warning(s)*
> > > > 3>opal-restart - 32 error(s), 0 warning(s)
> > > > 4>opal-wrapper - 21 error(s), 0 warning(s)
> > > > 2>libopen-rte - 749 error(s), 7 warning(s)
> > > > 5>orte-checkpoint - 32 error(s), 0 warning(s)
> > > > 7>orte-ps - 28 error(s), 0 warning(s)
> > > > 8>orted - 2 error(s), 0 warning(s)
> > > > 9>orte-clean - 13 error(s), 0 warning(s)
> > > > 10>orterun - 100 error(s), 3 warning(s)
> > > > 6>libmpi - 2133 error(s), 42 warning(s)
> > > > 12>ompi-server - 27 error(s), 0 warning(s)
> > > > 11>ompi_info - 146 error(s), 0 warning(s)
> > > > 13>libmpi_cxx - 456 error(s), 61 warning(s)
> > > > ========== Rebuild All: 2 succeeded, 12 failed, 0 skipped
> > ==========
> > > >
> > > > It said that 2 succeeded, I could not find the second build
> > > success in
> > > > the listing.
> > > >
> > > > *However, everything did compile, and thank you Shiqing !*
> > > >
> > > > Here is the listing for the first failed link, on "opal-restart":
> > > >
> > > > 3>------ Rebuild All started: Project: opal-restart, Configuration:
> > > > Debug Win32 ------
> > > > 3>Deleting intermediate and output files for project
> > 'opal-restart',
> > > > configuration 'Debug|Win32'
> > > > 3>Compiling...
> > > > 3>opal-restart.c
> > > > 2>Compiling...
> > > > 2>snapc_base_select.c
> > > > 3>Compiling manifest to resources...
> > > > 3>Linking...
> > > > 2>snapc_base_open.c
> > > > 3>opal-restart.obj : error LNK2001: unresolved external symbol
> > > > __imp__opal_crs
> > > > 3>opal-restart.obj : error LNK2001: unresolved external symbol
> > > > __imp__opal_crs_base_snapshot_t_class
> > > > 3>opal-restart.obj : error LNK2001: unresolved external symbol
> > > > __imp__opal_crs_base_selected_component
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_crs_base_select referenced in function _main
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_crs_base_open referenced in function _main
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_output_verbose referenced in function _main
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_crs_base_extract_expected_component referenced in
> > > function
> > > > _main
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_crs_base_get_snapshot_directory referenced in
> > > function _main
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_setenv referenced in function _main
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__mca_base_param_env_var referenced in function _main
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_show_help referenced in function _main
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_class_initialize referenced in function "struct
> > > > opal_object_t * __cdecl opal_obj_new(struct opal_class_t *)"
> > > > (?opal_obj_new@@YAPAUopal_object_t@@PAUopal_class_t@@@Z)
> > > > 3>opal-restart.obj : error LNK2001: unresolved external symbol
> > > > __imp__opal_cr_is_tool
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_init referenced in function "int __cdecl
> > > > initialize(int,char * * const)" (?initialize@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_output_set_verbosity referenced in function "int
> > __cdecl
> > > > initialize(int,char * * const)" (?initialize@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_output_open referenced in function "int __cdecl
> > > > initialize(int,char * * const)" (?initialize@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_init_util referenced in function "int __cdecl
> > > > initialize(int,char * * const)" (?initialize@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_finalize referenced in function "int __cdecl
> > > > finalize(void)" (?finalize@@YAHXZ)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_argv_join referenced in function "int __cdecl
> > > > parse_args(int,char * * const)" (?parse_args@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_cmd_line_get_tail referenced in function "int __cdecl
> > > > parse_args(int,char * * const)" (?parse_args@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_cmd_line_get_usage_msg referenced in function "int
> > > __cdecl
> > > > parse_args(int,char * * const)" (?parse_args@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_argv_count referenced in function "int __cdecl
> > > > parse_args(int,char * * const)" (?parse_args@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__mca_base_cmd_line_process_args referenced in function "int
> > > > __cdecl parse_args(int,char * * const)" (?parse_args@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_cmd_line_parse referenced in function "int __cdecl
> > > > parse_args(int,char * * const)" (?parse_args@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__mca_base_cmd_line_setup referenced in function "int __cdecl
> > > > parse_args(int,char * * const)" (?parse_args@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__mca_base_open referenced in function "int __cdecl
> > > > parse_args(int,char * * const)" (?parse_args@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_cmd_line_create referenced in function "int __cdecl
> > > > parse_args(int,char * * const)" (?parse_args@@YAHHQAPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_argv_free referenced in function "int __cdecl
> > > > check_file(char *)" (?check_file@@YAHPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_output referenced in function "int __cdecl
> > > check_file(char
> > > > *)" (?check_file@@YAHPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_crs_base_metadata_read_token referenced in function
> > "int
> > > > __cdecl post_env_vars(int,char *)" (?post_env_vars@@YAHHPAD_at_Z)
> > > > 3>opal-restart.obj : error LNK2019: unresolved external symbol
> > > > __imp__opal_asprintf referenced in function "int __cdecl
> > > > post_env_vars(int,char *)" (?post_env_vars@@YAHHPAD_at_Z)
> > > > 3>C:\prog\mon\Debug\opal-restart.exe : fatal error LNK1120: 31
> > > > unresolved externals
> > > > 3>Build log was saved at
> > > >
> > "file://c:\prog\mon\opal\tools\opal-restart\opal-restart.dir\Debug\BuildLog.htm
> > <file:///c:/prog/mon/opal/tools/opal-restart/opal-restart.dir/Debug/BuildLog.htm>
> > > <file://c:%5Cprog%5Cmon%5Copal%5Ctools%5Copal-restart%5Copal-restart.dir%5CDebug%5CBuildLog.htm
> > <file:///c:%255Cprog%255Cmon%255Copal%255Ctools%255Copal-restart%255Copal-restart.dir%255CDebug%255CBuildLog.htm>>"
> > > > 3>opal-restart - 32 error(s), 0 warning(s)
> > > >
> > > > Now, these link errors may be from missing networking software and
> > > > hardware, I was just following the instructions in
> > > > openmpi-1.4.tar.gz:a/openmpi-1.4/README.WINDOWS:
> > > >
> > > > > First approach: Using CMake
> > > > >
> > > > > NOTE: CMake support is available in the Open MPI development
> > > > > trunk and 1.3.3 release.
> > > > >
> > > > > 1. Download the latest version of CMake (at least v2.4).
> > > > >
> > > > > 2. In the CMake GUI, add the source path and build path of
> > Open MPI
> > > > > (out of source build is recommended).
> > > > >
> > > > > 3. Then configure, and after the first time configuration, all
> > > > > available options will show up in the CMake GUI. Select the
> > > > > options that you require.
> > > > >
> > > > > 4. Run configure again to generate all Windows solution
> > files; they
> > > > > will be generated in build path.
> > > > >
> > > > > 5. Go to the build directory, open the generated Windows solution
> > > > > file, and compile.
> > > > >
> > > > > 6. To generate a installer, you should install NSIS, and
> > build the
> > > > > 'PACKAGE' project in the Open MPI sulotion.
> > > > >
> > > >
> > > > These instructions did not mention any link libraries I had to
> > > add to
> > > > complete the build.
> > > >
> > > > Thanks in advance for any help !
> > > >
> > > > Charlie ...
> > > >
> > > >
> > ------------------------------------------------------------------------
> > > >
> > > > _______________________________________________
> > > > users mailing list
> > > > users_at_[hidden]
> > > > http://www.open-mpi.org/mailman/listinfo.cgi/users
> > >
> > >
> > > --
> > > --------------------------------------------------------------
> > > Shiqing Fan http://www.hlrs.de/people/fan
> > > High Performance Computing Tel.: +49 711 685 87234
> > > Center Stuttgart (HLRS) Fax.: +49 711 685 65832
> > > Address:Allmandring 30 email: fan_at_[hidden]
> > > 70569 Stuttgart
> > >
> >
> >
> > --
> > --------------------------------------------------------------
> > Shiqing Fan http://www.hlrs.de/people/fan
> > High Performance Computing Tel.: +49 711 685 87234
> > Center Stuttgart (HLRS) Fax.: +49 711 685 65832
> > Address:Allmandring 30 email: fan_at_[hidden]
> > 70569 Stuttgart
> >
>
>
> --
> --------------------------------------------------------------
> Shiqing Fan http://www.hlrs.de/people/fan
> High Performance Computing Tel.: +49 711 685 87234
> Center Stuttgart (HLRS) Fax.: +49 711 685 65832
> Address:Allmandring 30 email: fan_at_[hidden]
> 70569 Stuttgart
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
Jeff Squyres
jsquyres_at_[hidden]