On Tue, Mar 10, 2009 at 6:38 PM, Wei-Dong Lian <span dir="ltr">&lt;<a href="mailto:weidong.lian@gmail.com">weidong.lian@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>[--with-shared=0, and do not use --with-dyanmic]<br>I compiled petsc and link the static lib with my makefile<br><span style="color: rgb(255, 0, 0);">&quot;ADDLIBSTATIC := $(ADDLIBSTATIC) $(PETSC_LIBDIR)/</span><div>


<span style="color: rgb(255, 0, 0);">libpetsccontrib.a
$(PETSC_LIBDIR)/libpetscksp.a $(PETSC_LIBDIR)/libpetscsnes.a
$(PETSC_LIBDIR)/libpetscvec.a $(PETSC_LIBDIR)/libpetsc.a
$(PETSC_LIBDIR)/libpetscdm.a $(PETSC_LIBDIR)/libpetscmat.a
$(PETSC_LIBDIR)/libpetscts.a&quot;</span><br></div></blockquote><div><br>1) You should be using the form Satish suggested at the bottom of this mail<br><br>2) ALWAYS always always mail the full error message.<br><br>  Matt<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>The result was the same as before. So I really wonder how to link petsc with static library? This is useful when I could not generate shared library. <br>
Tomorrow morning I will try the  <b>setCompilers.py </b>that you sent me for avoiding the error of -PIC. it is 00:37, I will go to sleep. <br>
See you tomorrow. Good night.<br>yours sincerely<br>Weidong<br></div><br><br><div class="gmail_quote">On Tue, Mar 10, 2009 at 10:53 PM, Satish Balay <span dir="ltr">&lt;<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><br>
<br>
On Tue, 10 Mar 2009, Wei-Dong Lian wrote:<br>
<br>
</div><div>&gt; Now I also found a problem for my computer about using petsc.<br>
&gt; In my computer, petsc can be compiled successfully without any problem. So I<br>
&gt; use the *.so library to link into my programme, it worked very well. But<br>
&gt; today I just have a try to link *.a library into my programme and it can not<br>
&gt; be compiled successfully.<br>
<br>
</div>Why do you want to do this? [When shared libraries exist - the<br>
compiler prefers then - instead of static. So you should just stick<br>
with the compiler default behavior. And if build PETSc with<br>
--with-dynamic - then the .a files are useless anyway.]<br>
<br>
So the shared vs static usage should be chosen at PETSc configure step.<br>
[--with-shared=1/0, and do not use --with-dyanmic]<br>
<br>
<br>
So  you should just use:<br>
<div><br>
ADDLIB := $(ADDLIB) -L$(PETSC_LIBDIR) -Wl,-rpath,$(PETSC_LIBDIR)<br>
</div>-lpetsccontrib -lpetscts -lpetscsnes -lpetscksp -lpetscdm<br>
-lpetscmat -lpetscvec -lpetsc<br>
<font color="#888888"><br>
<br>
Satish<br>
</font></blockquote></div><br>
</blockquote></div><br><br clear="all"><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br>