[fpc-devel] MPI (MPICH) - Leopard

Jonas Maebe jonas.maebe at elis.ugent.be
Sun Oct 19 17:10:46 CEST 2008


On 19 Oct 2008, at 13:12, jideel wrote:

> If i try to compile using the following command line : fpc -k/Users/ 
> jideel/mpich2/lib/libmpich.a -k/Users/jideel/mpich2/lib/libpmpich.a  
> HelloWorld1.pp , it builds and executes succesfully.
> I was not aware of this behaviour on Mac OS X.

I don't know whether it is specific to Mac OS X that the linker  
prefers dynamic over static libraries. You were also specifying the  
wrong library name to the linker (mpi rather than mpich). The system- 
installed version is called libmpi, the one you want is libmpich (and  
apparently also libmpich). You might also be able to use {$l  
libmpich.a} and {$l libpmpich.a} in the source (*not* {$linklib  
libmpich.a}) to explicitly refer the static libraries.

> Many thanks for your quick response.
> I removed the openmpi dynamic libs provided with Leopard,

I hope that in the future you will restore this library before  
reporting any problems, as it might be caused by you removing system- 
supplied libraries (including general system instability and what  
not). In general, I would strong recommend against removing system  
libraries (regardless of whether you're on Mac OS X, Linux or Windows).

> do you think i should enable shared libs while building MPICH2 ("-- 
> enable-sharedlibs"), and thus be able to avoid the -k switches ?

That would be an option. But then you will also have to learn about  
library install names on Mac OS X if you intend to distribute your  
program to other people. And at least in this case, simply linking  
against mpich/pmich rather than against mpi will also solve your  
problem.


Jonas



More information about the fpc-devel mailing list