Thanks Berend for your thorough response,<br><br>I have done what you have said but I still get the same error regarding &quot;undefined references to PetscInitialize&quot; etc. It&#39;s like I didn&#39;t include the petscksp.h file, but it&#39;s there. I even tried petsc.h to no avail.<br>
<br>I&#39;m not sure what the compiler is referring to when it says &quot;Undefined references to ...&quot;. What I think this is is in the assembly code generated by the compiler, there is a PetscInitialize symbol that isn&#39;t found in the library. But I&#39;m soooooooooo confused at this point :(. How did you guys all learn how to compile this?<br>
<br>Matt <br><br><div class="gmail_quote">On Wed, Jul 27, 2011 at 4:46 PM, Berend van Wachem <span dir="ltr">&lt;<a href="mailto:b.van-wachem@imperial.ac.uk">b.van-wachem@imperial.ac.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Dear Matt,<br>
<br>
I use Eclipse and have eclipse make the makefiles.<br>
It is just a matter of indicating to eclipse where the PETSc headers/libraries are to be found, so if you have a C project which needs PETSc headers and libraries:<br>
<br>
To do this, click on your managed C project with the right sided mouse button, select<br>
<br>
Properties -&gt; C/C++ Build -&gt; Settings<br>
<br>
Then you get a new window with on the right hand side the various setting options.<br>
<br>
Select Includes, and add the required PETSc paths. In my case I have added<br>
${PETSC_DIR}/include<br>
${PETSC_DIR}/${PETSC_ARCH}/<u></u>include<br>
<br>
Then select &quot;Libraries&quot; under the header Linker<br>
and you should set the Library search path:<br>
${PETSC_DIR}/${PETSC_ARCH}/lib<br>
<br>
and then the libraries, in my case:<br>
m, petsc, stdc++, mpichxx, mpich, lapack, blas, gfortran, dl, rt,gcc_s, pthread, X11<br>
(you can find these easily in $PETSC_DIR/$PETSC_ARCH/<u></u>petscmachineinfo.h)<br>
<br>
The nice thing is that in eclipse you can easily switch between Debug/Release code, traverse into the PETSc source code etc. It&#39;s really a very productive tool with PETSc I&#39;ve found.<br>
<br>
Let me know if you have any questions.<br>
<br>
Kind regards,<br>
<br>
Berend.<div class="im"><br>
<br>
<br>
On 07/27/2011 11:25 PM, Matt Bockman wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Thanks everyone for the help,<br>
<br>
I was able to compile a single example in Eclipse using the provided<br>
makefile. I&#39;m pretty new to makefiles so it&#39;s a LOT to digest. I&#39;m now<br>
manually creating a makefile for my project in Eclipse (and I&#39;ve set<br>
Eclipse up to use a makefile that I create instead of automatically<br>
generating one). Unfortunately this is a big pain but since I can&#39;t<br>
figure out how to make Eclipse automatically include a few files in the<br>
makefile I don&#39;t really have any other choices :(.<br>
<br>
Thanks again,<br>
Matt<br>
<br>
On Wed, Jul 27, 2011 at 1:43 PM, Mohammad Mirzadeh &lt;<a href="mailto:mirzadeh@gmail.com" target="_blank">mirzadeh@gmail.com</a><br></div><div class="im">
&lt;mailto:<a href="mailto:mirzadeh@gmail.com" target="_blank">mirzadeh@gmail.com</a>&gt;&gt; wrote:<br>
<br>
    There two problems(I think) in this code.<br>
<br>
    1) there is no main function in your source code. If this is the<br>
    only file you are compiling, you need to change the function name to<br>
    main.<br>
    2) linking should be done after object files are created. A simple<br>
    g++ call would first compile the main file and then link the object<br>
    to the petsc lib i.e<br>
<br>
    g++ -c -I($PETSC_INCLUDE) main.cpp<br>
    g++ -o main main.o $PETSC_LIBS<br>
<br>
    alternatively, you could do it in a single line if you like<br>
<br>
    g++ -o main -I($PETSC_INCLUDE) main.cpp $PETSC_LIBS<br>
<br>
    my point is you should link to petsc after compiling your own code.<br>
    So wherever in Eclipse that you are seting the parameters, make sure<br>
    the $PETSC_LIBS is in the linker option and not compiler.<br>
<br>
    Mohammad<br>
<br>
<br>
    On Wed, Jul 27, 2011 at 12:39 PM, Matt Bockman &lt;<a href="mailto:mdbockma@ucsd.edu" target="_blank">mdbockma@ucsd.edu</a><br></div><div><div></div><div class="h5">
    &lt;mailto:<a href="mailto:mdbockma@ucsd.edu" target="_blank">mdbockma@ucsd.edu</a>&gt;&gt; wrote:<br>
<br>
        I added the include directories from &quot;make getincludedirs&quot; and I<br>
        added the line from &quot;make getlinklib&quot;. Eclipse creates a gcc<br>
        call as follows:<br>
<br>
        /home/mdbockman/Documents/<u></u>Research/codes/petsc/petsc-3.<u></u>1-p8/linux-gnu-c-debug/bin/<u></u>mpicc<br>
        -I/home/mdbockman/Documents/<u></u>Research/codes/petsc/petsc-3.<u></u>1-p8/linux-gnu-c-debug/include<br>
        -I/home/mdbockman/Documents/<u></u>Research/codes/petsc/petsc-3.<u></u>1-p8/include<br>
        -I/home/mdbockman/Documents/<u></u>Research/codes/petsc/petsc-3.<u></u>1-p8/linux-gnu-c-debug/include<br>
        -O0 -g3 -pg -p -Wall<br>
        -Wl,-rpath,/home/mdbockman/<u></u>Documents/Research/codes/<u></u>petsc/petsc-3.1-p8/linux-gnu-<u></u>c-debug/lib<br>
        -Wl,-rpath,/home/mdbockman/<u></u>Documents/Research/codes/<u></u>petsc/petsc-3.1-p8/linux-gnu-<u></u>c-debug/lib<br>
        -L/home/mdbockman/Documents/<u></u>Research/codes/petsc/petsc-3.<u></u>1-p8/linux-gnu-c-debug/lib<br>
        -lpetsc -lX11<br>
        -Wl,-rpath,/home/mdbockman/<u></u>Documents/Research/codes/<u></u>petsc/petsc-3.1-p8/linux-gnu-<u></u>c-debug/lib<br>
        -L/home/mdbockman/Documents/<u></u>Research/codes/petsc/petsc-3.<u></u>1-p8/linux-gnu-c-debug/lib<br>
        -lflapack -lfblas -lnsl -lrt -lm<br>
        -L/home/mdbockman/Documents/<u></u>Research/codes/petsc/petsc-3.<u></u>1-p8/linux-gnu-c-debug/lib<br>
        -L/usr/lib/x86_64-linux-gnu/<u></u>gcc/x86_64-linux-gnu/4.5.2<br>
        -L/usr/lib/x86_64-linux-gnu -ldl -lmpich -lpthread -lrt -lgcc_s<br>
        -lmpichf90 -lgfortran -lm -lm -ldl -lmpich -lpthread -lrt<br>
        -lgcc_s -ldl -MMD -MP -MF&quot;SparseMatrixPetsc.d&quot;<br>
        -MT&quot;SparseMatrixPetsc.d&quot; -o&quot;SparseMatrixPetsc.o&quot;<br>
        &quot;../SparseMatrixPetsc.c<br>
<br>
        And when it is compiled I get the following:<br>
<br>
        <a href="http://pastebin.com/CbRzYcZj" target="_blank">http://pastebin.com/CbRzYcZj</a><br>
<br>
        The source file which is being compiled is:<br>
<br>
        <a href="http://pastebin.com/Q85hXvnS" target="_blank">http://pastebin.com/Q85hXvnS</a><br>
<br>
        Please have a look. I&#39;m not quite sure what I&#39;m doing wrong but<br>
        I feel like I&#39;m getting closer and closer to the solution.<br>
<br>
        Matt<br>
<br>
<br>
        On Wed, Jul 27, 2011 at 11:52 AM, Satish Balay<br></div></div><div class="im">
        &lt;<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a> &lt;mailto:<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>&gt;&gt; wrote:<br>
<br>
            use:<br>
            make getincludedirs<br>
<br>
            Satish<br>
<br>
            On Wed, 27 Jul 2011, Mohammad Mirzadeh wrote:<br>
<br>
             &gt; I applogize for the mistake; Include files are actually<br>
            located<br>
             &gt; in $PETSC_DIR/include<br>
             &gt;<br>
             &gt; On Wed, Jul 27, 2011 at 11:18 AM, Mohammad Mirzadeh<br></div>
            &lt;<a href="mailto:mirzadeh@gmail.com" target="_blank">mirzadeh@gmail.com</a> &lt;mailto:<a href="mailto:mirzadeh@gmail.com" target="_blank">mirzadeh@gmail.com</a>&gt;&gt;<u></u>wrote:<div class="im"><br>
             &gt;<br>
             &gt; &gt; Ok then. Now I don&#39;t have enough experience with Eclipse so<br>
             &gt; &gt; I apologize beforehand if you already know these/have<br>
            tried them out. If<br>
             &gt; &gt; not, hopefully they can be of help. I assume there<br>
            should be a way in<br>
             &gt; &gt; Eclipse to give it the link lib directory. In plain<br>
            makefile that&#39;s just a<br>
             &gt; &gt; simple step when linking. To get all the needed<br>
            linklibs for petsc, you can<br>
             &gt; &gt; do<br>
             &gt; &gt;<br>
             &gt; &gt; make getlinklibs<br>
             &gt; &gt;<br>
             &gt; &gt; in the $PETSC_DIR. As for the needed include files,<br>
            they are all located<br>
             &gt; &gt; in<br>
             &gt; &gt;<br>
             &gt; &gt; $PETSC_DIR/$PETSC_ARCH/include<br>
             &gt; &gt;<br>
             &gt; &gt; Again, its easy to use these directories along with<br>
            your makefile. I&#39;m not<br>
             &gt; &gt; sure about how you give them to Eclipse though.<br>
            Hopefully this has been<br>
             &gt; &gt; helpful.<br>
             &gt; &gt;<br>
             &gt; &gt; Best,<br>
             &gt; &gt; Mohammad<br>
             &gt; &gt;<br>
             &gt; &gt;<br>
             &gt; &gt;<br>
             &gt; &gt;<br>
             &gt; &gt; On Wed, Jul 27, 2011 at 10:52 AM, Matt Bockman<br></div><div class="im">
            &lt;<a href="mailto:mdbockma@ucsd.edu" target="_blank">mdbockma@ucsd.edu</a> &lt;mailto:<a href="mailto:mdbockma@ucsd.edu" target="_blank">mdbockma@ucsd.edu</a>&gt;&gt; wrote:<br>
             &gt; &gt;<br>
             &gt; &gt;&gt; Just pointing it to the library would be sufficient.<br>
             &gt; &gt;&gt;<br>
             &gt; &gt;&gt; Matt<br>
             &gt; &gt;&gt;<br>
             &gt; &gt;&gt;<br>
             &gt; &gt;&gt; On Wed, Jul 27, 2011 at 10:21 AM, Mohammad Mirzadeh<br></div>
            &lt;<a href="mailto:mirzadeh@gmail.com" target="_blank">mirzadeh@gmail.com</a> &lt;mailto:<a href="mailto:mirzadeh@gmail.com" target="_blank">mirzadeh@gmail.com</a>&gt;&gt;<u></u>wrote:<div class="im"><br>
             &gt; &gt;&gt;<br>
             &gt; &gt;&gt;&gt; So do you want to be able to compile PETSc with<br>
            Eclipse or just point it<br>
             &gt; &gt;&gt;&gt; to the library to use in your own applications?<br>
             &gt; &gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt; On Wed, Jul 27, 2011 at 9:14 AM, Matt Bockman<br></div><div class="im">
            &lt;<a href="mailto:mdbockma@ucsd.edu" target="_blank">mdbockma@ucsd.edu</a> &lt;mailto:<a href="mailto:mdbockma@ucsd.edu" target="_blank">mdbockma@ucsd.edu</a>&gt;&gt; wrote:<br>
             &gt; &gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt; Thanks Mohammad,<br>
             &gt; &gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt; I&#39;ll give that a shot. I use Qt Creator for some GUI<br>
            applications so I<br>
             &gt; &gt;&gt;&gt;&gt; am familiar with it, but I&#39;ve never tried doing a<br>
            non-Qt project in it. I&#39;d<br>
             &gt; &gt;&gt;&gt;&gt; really like to get Eclipse to work.<br>
             &gt; &gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt; Regarding the makefiles for eclipse. There are<br>
            makefiles that it<br>
             &gt; &gt;&gt;&gt;&gt; generates (which are for GNU make) but I think I can<br>
            also manually create my<br>
             &gt; &gt;&gt;&gt;&gt; makefiles. After sleeping on it, it seems like this<br>
            might be the best<br>
             &gt; &gt;&gt;&gt;&gt; option, unless I can figure out a way to configure<br>
            eclipse to include the<br>
             &gt; &gt;&gt;&gt;&gt; conf/variables and conf/rules files in the makefile.<br>
             &gt; &gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt; Matt<br>
             &gt; &gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt; On Wed, Jul 27, 2011 at 12:01 AM, Mohammad Mirzadeh<br></div>
            &lt;<a href="mailto:mirzadeh@gmail.com" target="_blank">mirzadeh@gmail.com</a> &lt;mailto:<a href="mailto:mirzadeh@gmail.com" target="_blank">mirzadeh@gmail.com</a>&gt;<div class="im"><br>
             &gt; &gt;&gt;&gt;&gt; &gt; wrote:<br>
             &gt; &gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt; Although this is sort of orthogonal to what you do<br>
            right now,<br>
             &gt; &gt;&gt;&gt;&gt;&gt; I recommend Qt Creator as an alternative IDE to<br>
            Eclipse. It links nicely<br>
             &gt; &gt;&gt;&gt;&gt;&gt; with PETSc(or any other library for that matter)<br>
            and has excellent c/c++<br>
             &gt; &gt;&gt;&gt;&gt;&gt; support.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt; Mohammad<br>
             &gt; &gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt; On Tue, Jul 26, 2011 at 7:22 PM, Barry Smith<br></div>
            &lt;<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a> &lt;mailto:<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>&gt;&gt;<u></u>wrote:<div class="im"><br>
             &gt; &gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; There is a tiny bit of information in the PETSc<br>
            users manual about<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; Eclipse:<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \section{Eclipse Users} \sindex{eclipse}<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; If you are interested in developing code that uses<br>
            PETSc from Eclipse<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; or developing PETSc in Eclipse and have knowledge<br>
            of how to do indexing and<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; build libraries in Eclipse please contact us at \<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; <a href="mailto:trl%7Bpetsc-dev@mcs.anl.gov" target="_blank">trl{petsc-dev@mcs.anl.gov</a><br></div>
            &lt;mailto:<a href="mailto:trl%257Bpetsc-dev@mcs.anl.gov" target="_blank">trl%7Bpetsc-dev@mcs.<u></u>anl.gov</a>&gt;}.<div><div></div><div class="h5"><br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; To make PETSc an Eclipse package<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \begin{itemize}<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \item Install the Mecurial plugin for Eclipse and<br>
            then import the<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; PETSc repository to Eclipse.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \item elected New-&gt;Convert to C/C++ project and<br>
            selected shared<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; library. After this point you can perform searchs<br>
            in the code.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \end{itemize}<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; A PETSc user has provided the following steps to<br>
            build an Eclipse<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; index for PETSc that can be used with their own<br>
            code without compiling PETSc<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; source into their project.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \begin{itemize}<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \item In the user project source directory, create<br>
            a symlink to the<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; petsc/src directory.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \item Refresh the project explorer in Eclipse, so<br>
            the new symlink is<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; followed.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \item Right-click on the project in the project<br>
            explorer, and choose<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; &quot;Index -&gt; Rebuild&quot;. The index should now be build.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \item Right-click on the PETSc symlink in the<br>
            project explorer, and<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; choose &quot;Exclude from build...&quot; to make sure<br>
            Eclipse does not try to compile<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; PETSc with the project.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; \end{itemize}<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; We&#39;d love to have someone figure out how to do it<br>
            right and include<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; that information.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; Barry<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; On Jul 26, 2011, at 4:32 PM, Matt Bockman wrote:<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; &gt; Has anyone gotten PETSc to work w/Eclipse?<br>
            Eclipse nicely generates<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; all my makefiles for me for my current project<br>
            (which is written in C++).<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; I&#39;d like to link PETSc w/my application but I&#39;m<br>
            not sure how to do this.<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; &gt; Suggestions?<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; &gt; Thanks,<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt; &gt; Matt<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;&gt;<br>
             &gt; &gt;&gt;&gt;<br>
             &gt; &gt;&gt;<br>
             &gt; &gt;<br>
             &gt;<br>
<br>
<br>
<br>
<br>
</div></div></blockquote>
</blockquote></div><br>