On Wed, 25 Jun 2003, William Boatin wrote:
> Sorry about the confusion. btw, i am not sure how to respond to
> responses in this mailing list.
If you just reply to the message in your mail client, most mail clients do
the Right Thing and our web archiver can automatically thread the reponses
in the archives. But if your mail client doesn't do the Right Thing, it's
really not that important. :-)
> I have both the problem of knowing which .h filese need to be
> translated/included AND which LAM libraries to include. I though that
> the wrapper that was listed in this posting:
> [snipped]
>
> My problem is the library section. Mine looks like this :
> {$L mpi++.o}
> {$L mpio.o}
> {$L mpi.o}
> {$L tstdio.o}
> {$L trillium.o}
> {$L args.o}
> {$L t.o}
Yes, this list is out of date.
You can run "mpicc -showme" to see a current list of libraries that are
necessary. Be aware that this list will definitely change between LAM/MPI
6.5.x and 7.x (indeed, in 7.x, the list is variable, depending on how you
configured and compiled LAM/MPI).
(I know I'm repeating my prior e-mail; more on this below)
> I had to add the ".o" because Kylix expects them (else for some weird
> reason it thinks the libraries are .obj files). Where are these .o files
LAM installs the resulting library files in $prefix/lib, where $prefix is
1) the directory that was specified with the --prefix option to LAM's
configure, 2) or if --prefix was not specified, where "lamclean" was found
when "configure" was run, or 3) if still not found, /usr/local.
This directory will be indicated in the "mpicc -showme" output.
You'll find files in there such as liblam.a, libmpi.a, etc.
Specifically, the files are *not* named with ".o" -- they end in ".a", as
is normal for libraries. I don't know much about Pascal, and know nothing
about the Kylix compiler, so I can't really offer any advice on how to get
them to link properly. It would surprise me, though, if a compiler did
not know how to handle library files.
> supposed to be? I know that I can find some by modifying the makefile so
> that the .o files are not deleted. i did this and copied the ones i
LAM should not be deleting its .o files unless you run "make clean".
> needed and could find to the directory where my project is but i still
> got errors in compiling my project. These are what the errors look like:
> [Error] mpiwrapper2.pas(215): Unsatisfied forward or external declaration:
> 'MPI_Init'
> [Error] mpiwrapper2.pas(216): Unsatisfied forward or external declaration:
> 'MPI_Comm_size'
> [Error] mpiwrapper2.pas(217): Unsatisfied forward or external declaration:
> 'MPI_Comm_rank'
> [Error] mpiwrapper2.pas(218): Unsatisfied forward or external declaration:
> 'MPI_Send'
> [Error] mpiwrapper2.pas(219): Unsatisfied forward or external declaration:
> 'MPI_Recv'
> [Error] mpiwrapper2.pas(219): Unsatisfied forward or external declaration:
> 'MPI_Finalize'
> I think they mean that I am not including the libraries i need to link
> to
You mean that you are not *linking* to the libraries that you need. :-)
(just a point of reference here, and why I was confused by your prior
post: "including" typically refers to header files and actions that occur
during the compilation phase, and "linking" typically refers to libraries
and object files and actions that occur during the linker phase)
Yes, I would agree that this is what the compiler/linker appears to be
saying.
> I ran mpicc -showme and got the libraries that are linked to by mpicc.
> but, these are .a files. kylix cant link to .a files as far as i know.
This would be surprising. Doesn't Pascal have any standard libraries?
Perhaps $L is the wrong directive to link to libraries...? I'm afraid
that since I don't know Kylix, I can't guess what to do here.
> is there any way to convert .a files to .o files? i was told that .a
> files are just a compilation of .o files...
The latter is true -- .a files are collections of .o files. You can
extract all the .o files from a .a file (or simply not delete the original
LAM .o files), but that would be (literally) hundreds of .o files.
> A lot of words. my problem is basically, where are the .o files that the
> mpi unit code in the posting above links to?
They should all be in the LAM/MPI source tree where you originally
compiled LAM. However, as I mentioned, there are literally hundreds of
these, and they are spread across about a dozen directories. I don't
think that this is the route you want to take.
You might want to double check the Kylix documentation and see if there is
some other kind of directive to link to C libraries.
--
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/
|