|
Boost-Build : |
Subject: Re: [Boost-build] Building Boost 1.44 with mpi enabled
From: Mike Van Duzee (mike.vanduzee_at_[hidden])
Date: 2012-07-26 10:09:35
Jurko, thanks for the quick reply.
After adding the -d+2 option I can see the following link line:
link /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /MACHINE:X64 /subsystem:console
/out:"bin.v2\libs\mpi\build\msvc-9.0\debug\address-model-64\threading-multi\boost_mpi-vc90-mt-gd-1_44.dll"
/IMPLIB:"bin.v2\libs\mpi\build\msvc-9.0\debug\address-model-64\threading-multi\boost_mpi-vc90-mt-gd-1_44.lib"
/LIBPATH:"d:\thirdparty\msvc2008\x64\OPENMPI\1.6\installed\lib"
@"bin.v2\libs\mpi\build\msvc-9.0\debug\address-model-64\threading-multi\boost_mpi-vc90-mt-gd-1_44.dll.rsp"
The unresolved symbols are located in the libmpi.lib library, but it is
nowhere to be found in the link line.
Looking at the mpi/build/Jamfile.v2 I don't see any modules listed. How
do I list a module to be linked against?
Thanks,
Mike
On 26/07/2012 10:30 AM, Jurko GospodnetiÄ wrote:
> Hi.
>
>> When I build it looks like every OpenMPI symbol is unresolved:
>>
>> msvc.link.dll
>> bin.v2\libs\mpi\build\msvc-9.0\debug\address-model-64\threading-multi\boost_mpi-vc90-mt-gd-1_44.dll
>>
>>
>> Creating library
>> bin.v2\libs\mpi\build\msvc-9.0\debug\address-model-64\threading-multi\boost_mpi-vc90-mt-gd-1_44.lib
>>
>> and object
>> bin.v2\libs\mpi\build\msvc-9.0\debug\address-model-64\threading-multi\boost_mpi-vc90-mt-gd-1_44.exp
>>
>>
>> text_skeleton_oarchive.obj : error LNK2001: unresolved external symbol
>> MPI_Error_class
>> timer.obj : error LNK2001: unresolved external symbol MPI_Error_class
>> ...
>>
>> I'm sure I'm just missing something simple, but I'm kinda new to this
>> and can't figure out what. Any help would be appreciated.
>
> First, since this problem seems to be Boost library build and not
> not really Boost Build build system related - you might get a better
> answer by asking on the Boost library user group/mailing-list.
>
> Never used MPI myself or tried compiling Boost with it so I can not
> help directly from experience but here is what I would do it this
> happened to me:
>
> * Run the build with the -d+2 option.
> * See the exact command line used when attempting to link one of the
> problematic libraries.
> * See which module actually implements one of the symbols reported
> as missing.
> * See whether this module has been listed in the command-line. If
> yes - then some define is missing and relative part of the code has
> been #ifdef-ed out or something similar; and if not - check whether
> the module is listed in the problematic library's build script.
>
> Steps from here diverge based on what was discovered up to now but
> basically - try to detect whether the problem is due to a missing
> setting in the build scripts or whether the Build system is doing
> something wrong. Most likely the problem is in the build scripts and
> in the process of researching this you'll find out some configuration
> setting in your environment is wrong or missing...
>
> Hope this helps.
>
> Best regards,
> Jurko GospodnetiÄ
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost-build
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk