I am confused now...should I use "/openmpi/mpic++ -E" or "/openmpi/mpic++" to compile my entire code??
--- On Mon, 9/22/08, Jeff Squyres <jsquy...@cisco.com> wrote: From: Jeff Squyres <jsquy...@cisco.com> Subject: Re: [OMPI users] conflict among differenv MPIs To: "Open MPI Users" <us...@open-mpi.org> List-Post: users@lists.open-mpi.org Date: Monday, September 22, 2008, 6:12 AM On Sep 22, 2008, at 8:48 AM, Robert Kubrick wrote: > Recompile your own version of openmpi in a local directory, set your > PATH to your local openmpi install. > > export PATH=/my/openmpi/install/include:/usr/local/include > > mpicxx -show mpicxx --showme should show you the exact command that Open MPI's wrapper compiler is using to compile your application. There should already be an explicit -I there for where OMPI's mpi.h resides. If that's the case, the compiler should look there *first* for mpi.h, not /usr/local/include. Consider following example: - I created include-test.c which just does an "#include <stdio.h>". - If I run this through the preprocessor, you can see that it's getting /usr/include/stdio.h: [6:09] svbu-mpi:~/tmp % cat include-test.c #include <stdio.h> [6:09] svbu-mpi:~/tmp % gcc -E include-test.c | head # 1 "include-test.c" # 1 "<built-in>" # 1 "<command line>" # 1 "include-test.c" # 1 "/usr/include/stdio.h" 1 3 4 # 28 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 319 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 320 "/usr/include/features.h" 2 3 4 - But now I make my-include-dir/stdio.h with a single line in it - Then I recompile with an explicit -I for that directory and you can see that the compiler picks up that stdio.h, not /usr/include/stdio.h [6:09] svbu-mpi:~/tmp % cat my-include-dir/stdio.h typedef int foo; [6:09] svbu-mpi:~/tmp % gcc -E -Imy-include-dir include-test.c | head # 1 "include-test.c" # 1 "<built-in>" # 1 "<command line>" # 1 "include-test.c" # 1 "my-include-dir/stdio.h" 1 typedef int foo; # 2 "include-test.c" 2 [6:10] svbu-mpi:~/tmp % Are you sure that OMPI's mpicxx.h is picking up MPICH's mpi.h? If so, how? Did you run it through the preprocessor (perhaps similar to above), or step through a debugger or something? -- Jeff Squyres Cisco Systems _______________________________________________ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users