Thanks everyone for the help, I was able to compile a single example in Eclipse using the provided makefile. I'm pretty new to makefiles so it's a LOT to digest. I'm now manually creating a makefile for my project in Eclipse (and I've set Eclipse up to use a makefile that I create instead of automatically generating one). Unfortunately this is a big pain but since I can't figure out how to make Eclipse automatically include a few files in the makefile I don't really have any other choices :(.
Thanks again, Matt On Wed, Jul 27, 2011 at 1:43 PM, Mohammad Mirzadeh <mirzadeh at gmail.com>wrote: > There two problems(I think) in this code. > > 1) there is no main function in your source code. If this is the only file > you are compiling, you need to change the function name to main. > 2) linking should be done after object files are created. A simple g++ call > would first compile the main file and then link the object to the petsc lib > i.e > > g++ -c -I($PETSC_INCLUDE) main.cpp > g++ -o main main.o $PETSC_LIBS > > alternatively, you could do it in a single line if you like > > g++ -o main -I($PETSC_INCLUDE) main.cpp $PETSC_LIBS > > my point is you should link to petsc after compiling your own code. So > wherever in Eclipse that you are seting the parameters, make sure the > $PETSC_LIBS is in the linker option and not compiler. > > Mohammad > > > On Wed, Jul 27, 2011 at 12:39 PM, Matt Bockman <mdbockma at ucsd.edu> wrote: > >> I added the include directories from "make getincludedirs" and I added the >> line from "make getlinklib". Eclipse creates a gcc call as follows: >> >> /home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/linux-gnu-c-debug/bin/mpicc >> -I/home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/linux-gnu-c-debug/include >> -I/home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/include >> -I/home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/linux-gnu-c-debug/include >> -O0 -g3 -pg -p -Wall >> -Wl,-rpath,/home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/linux-gnu-c-debug/lib >> -Wl,-rpath,/home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/linux-gnu-c-debug/lib >> -L/home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/linux-gnu-c-debug/lib >> -lpetsc -lX11 >> -Wl,-rpath,/home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/linux-gnu-c-debug/lib >> -L/home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/linux-gnu-c-debug/lib >> -lflapack -lfblas -lnsl -lrt -lm >> -L/home/mdbockman/Documents/Research/codes/petsc/petsc-3.1-p8/linux-gnu-c-debug/lib >> -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2 >> -L/usr/lib/x86_64-linux-gnu -ldl -lmpich -lpthread -lrt -lgcc_s -lmpichf90 >> -lgfortran -lm -lm -ldl -lmpich -lpthread -lrt -lgcc_s -ldl -MMD -MP >> -MF"SparseMatrixPetsc.d" -MT"SparseMatrixPetsc.d" -o"SparseMatrixPetsc.o" >> "../SparseMatrixPetsc.c >> >> And when it is compiled I get the following: >> >> http://pastebin.com/CbRzYcZj >> >> The source file which is being compiled is: >> >> http://pastebin.com/Q85hXvnS >> >> Please have a look. I'm not quite sure what I'm doing wrong but I feel >> like I'm getting closer and closer to the solution. >> >> Matt >> >> >> On Wed, Jul 27, 2011 at 11:52 AM, Satish Balay <balay at mcs.anl.gov> wrote: >> >>> use: >>> make getincludedirs >>> >>> Satish >>> >>> On Wed, 27 Jul 2011, Mohammad Mirzadeh wrote: >>> >>> > I applogize for the mistake; Include files are actually located >>> > in $PETSC_DIR/include >>> > >>> > On Wed, Jul 27, 2011 at 11:18 AM, Mohammad Mirzadeh < >>> mirzadeh at gmail.com>wrote: >>> > >>> > > Ok then. Now I don't have enough experience with Eclipse so >>> > > I apologize beforehand if you already know these/have tried them out. >>> If >>> > > not, hopefully they can be of help. I assume there should be a way in >>> > > Eclipse to give it the link lib directory. In plain makefile that's >>> just a >>> > > simple step when linking. To get all the needed linklibs for petsc, >>> you can >>> > > do >>> > > >>> > > make getlinklibs >>> > > >>> > > in the $PETSC_DIR. As for the needed include files, they are all >>> located >>> > > in >>> > > >>> > > $PETSC_DIR/$PETSC_ARCH/include >>> > > >>> > > Again, its easy to use these directories along with your makefile. >>> I'm not >>> > > sure about how you give them to Eclipse though. Hopefully this has >>> been >>> > > helpful. >>> > > >>> > > Best, >>> > > Mohammad >>> > > >>> > > >>> > > >>> > > >>> > > On Wed, Jul 27, 2011 at 10:52 AM, Matt Bockman <mdbockma at ucsd.edu> >>> wrote: >>> > > >>> > >> Just pointing it to the library would be sufficient. >>> > >> >>> > >> Matt >>> > >> >>> > >> >>> > >> On Wed, Jul 27, 2011 at 10:21 AM, Mohammad Mirzadeh < >>> mirzadeh at gmail.com>wrote: >>> > >> >>> > >>> So do you want to be able to compile PETSc with Eclipse or just >>> point it >>> > >>> to the library to use in your own applications? >>> > >>> >>> > >>> >>> > >>> On Wed, Jul 27, 2011 at 9:14 AM, Matt Bockman <mdbockma at ucsd.edu> >>> wrote: >>> > >>> >>> > >>>> Thanks Mohammad, >>> > >>>> >>> > >>>> I'll give that a shot. I use Qt Creator for some GUI applications >>> so I >>> > >>>> am familiar with it, but I've never tried doing a non-Qt project >>> in it. I'd >>> > >>>> really like to get Eclipse to work. >>> > >>>> >>> > >>>> Regarding the makefiles for eclipse. There are makefiles that it >>> > >>>> generates (which are for GNU make) but I think I can also manually >>> create my >>> > >>>> makefiles. After sleeping on it, it seems like this might be the >>> best >>> > >>>> option, unless I can figure out a way to configure eclipse to >>> include the >>> > >>>> conf/variables and conf/rules files in the makefile. >>> > >>>> >>> > >>>> Matt >>> > >>>> >>> > >>>> >>> > >>>> On Wed, Jul 27, 2011 at 12:01 AM, Mohammad Mirzadeh < >>> mirzadeh at gmail.com >>> > >>>> > wrote: >>> > >>>> >>> > >>>>> Although this is sort of orthogonal to what you do right now, >>> > >>>>> I recommend Qt Creator as an alternative IDE to Eclipse. It links >>> nicely >>> > >>>>> with PETSc(or any other library for that matter) and has >>> excellent c/c++ >>> > >>>>> support. >>> > >>>>> >>> > >>>>> Mohammad >>> > >>>>> >>> > >>>>> >>> > >>>>> On Tue, Jul 26, 2011 at 7:22 PM, Barry Smith <bsmith at mcs.anl.gov >>> >wrote: >>> > >>>>> >>> > >>>>>> >>> > >>>>>> There is a tiny bit of information in the PETSc users manual >>> about >>> > >>>>>> Eclipse: >>> > >>>>>> >>> > >>>>>> \section{Eclipse Users} \sindex{eclipse} >>> > >>>>>> >>> > >>>>>> If you are interested in developing code that uses PETSc from >>> Eclipse >>> > >>>>>> or developing PETSc in Eclipse and have knowledge of how to do >>> indexing and >>> > >>>>>> build libraries in Eclipse please contact us at \ >>> > >>>>>> trl{petsc-dev at mcs.anl.gov}. >>> > >>>>>> >>> > >>>>>> To make PETSc an Eclipse package >>> > >>>>>> \begin{itemize} >>> > >>>>>> \item Install the Mecurial plugin for Eclipse and then import >>> the >>> > >>>>>> PETSc repository to Eclipse. >>> > >>>>>> \item elected New->Convert to C/C++ project and selected shared >>> > >>>>>> library. After this point you can perform searchs in the code. >>> > >>>>>> \end{itemize} >>> > >>>>>> >>> > >>>>>> A PETSc user has provided the following steps to build an >>> Eclipse >>> > >>>>>> index for PETSc that can be used with their own code without >>> compiling PETSc >>> > >>>>>> source into their project. >>> > >>>>>> \begin{itemize} >>> > >>>>>> \item In the user project source directory, create a symlink to >>> the >>> > >>>>>> petsc/src directory. >>> > >>>>>> \item Refresh the project explorer in Eclipse, so the new >>> symlink is >>> > >>>>>> followed. >>> > >>>>>> \item Right-click on the project in the project explorer, and >>> choose >>> > >>>>>> "Index -> Rebuild". The index should now be build. >>> > >>>>>> \item Right-click on the PETSc symlink in the project explorer, >>> and >>> > >>>>>> choose "Exclude from build..." to make sure Eclipse does not try >>> to compile >>> > >>>>>> PETSc with the project. >>> > >>>>>> \end{itemize} >>> > >>>>>> >>> > >>>>>> We'd love to have someone figure out how to do it right and >>> include >>> > >>>>>> that information. >>> > >>>>>> >>> > >>>>>> Barry >>> > >>>>>> >>> > >>>>>> On Jul 26, 2011, at 4:32 PM, Matt Bockman wrote: >>> > >>>>>> >>> > >>>>>> > Has anyone gotten PETSc to work w/Eclipse? Eclipse nicely >>> generates >>> > >>>>>> all my makefiles for me for my current project (which is written >>> in C++). >>> > >>>>>> I'd like to link PETSc w/my application but I'm not sure how to >>> do this. >>> > >>>>>> > >>> > >>>>>> > Suggestions? >>> > >>>>>> > >>> > >>>>>> > Thanks, >>> > >>>>>> > Matt >>> > >>>>>> >>> > >>>>>> >>> > >>>>> >>> > >>>> >>> > >>> >>> > >> >>> > > >>> > >>> >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110727/17709100/attachment.htm>
