Hello,<br><br>I did not configure the flag -PIC, can you tell me how to change the -PIC to -fPIC.<br>By the way, why there are two types lib *.so and *.lib in the library path. But when I change option to FC=g77, it only left *.lib in the library path.<br>
<br>Thank you very much.<br>Weidong<br><br><div class="gmail_quote">On Tue, Mar 10, 2009 at 6:58 PM, Satish Balay <span dir="ltr">&lt;<a href="mailto:balay@mcs.anl.gov">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;">
Sugest doing the following:<br>
<br>
cd src/ksp/ksp/examples/tutorials<br>
make ex2<br>
<br>
And now make sure *all* compile and include options are also used in<br>
your makefile. [-PIC is an error - configure should have picked up<br>
-fPIC - not -PIC]<br>
<br>
One easy way to do this is to use PETSc makefiles [check<br>
src/ksp/ksp/examples/tutorials/makefile]. This shows how to use PETSc<br>
&#39;make targets and variables.<br>
<br>
But since you want to use your own targets - you can pickup atleat the<br>
variables by Perhaps doing the following:<br>
<br>
include ${PETSC_DIR}/conf/variables<br>
&lt; now use $(PETSC_LIB) &gt;<br>
<font color="#888888"><br>
Satish<br>
</font><div><div></div><div class="h5"><br>
<br>
<br>
<br>
On Tue, 10 Mar 2009, Wei-Dong Lian wrote:<br>
<br>
&gt; Hello,<br>
&gt; I am so sorry for that, but you are right. Thanks for your advice and I will<br>
&gt; pay more attention from now on. Thank you very much.<br>
&gt; Weidong<br>
&gt;<br>
&gt; On Tue, Mar 10, 2009 at 6:43 PM, Barry Smith &lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt;    The order that libraries are listed in a makefile IS IMPORTANT.<br>
&gt; &gt;<br>
&gt; &gt; DDLIBSTATIC := $(ADDLIBSTATIC) $(PETSC_LIBDIR)/libmpiuni.a<br>
&gt; &gt; $(PETSC_LIBDIR)/libpetsccontrib.a $(PETSC_LIBDIR)/libpetscksp.a<br>
&gt; &gt; $(PETSC_LIBDIR)/libpetscsnes.a $(PETSC_LIBDIR)/libpetscvec.a<br>
&gt; &gt; $(PETSC_LIBDIR)/libpetsc.a $(PETSC_LIBDIR)/libpetscdm.a<br>
&gt; &gt; $(PETSC_LIBDIR)/libpetscmat.a $(PETSC_LIBDIR)/libpetscts.a<br>
&gt; &gt;<br>
&gt; &gt; Here you have some crazy, nonsense ordering of the libraries. Whoever made<br>
&gt; &gt; this &quot;makefile&quot; doesn&#39;t have a clue about unix; you cannot just dump random<br>
&gt; &gt; strings of characters into files and expect to develop software! It requires<br>
&gt; &gt; some basic understanding of what you are doing.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;   Barry<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Mar 10, 2009, at 11:56 AM, Wei-Dong Lian wrote:<br>
&gt; &gt;<br>
&gt; &gt;  Hello,<br>
&gt; &gt;&gt; Following are my makefile for link petsc. Before I configure with option<br>
&gt; &gt;&gt; fortrun compiler with gfortran, it generates the shared library, now in my<br>
&gt; &gt;&gt; computer with g77, so there is no shared library, I use the static library<br>
&gt; &gt;&gt; as below.<br>
&gt; &gt;&gt; Thanks for your information.<br>
&gt; &gt;&gt; Weidong<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; ****************************************************<br>
&gt; &gt;&gt; #FOR PETSC<br>
&gt; &gt;&gt; ifdef HAVE_PETSC<br>
&gt; &gt;&gt; DEFS := $(DEFS) -DHAVE_PETSC<br>
&gt; &gt;&gt; PETSC_DIR=$(DEVROOT)/Solver/petscSeq<br>
&gt; &gt;&gt; PETSC_ARCH=$(ARCHOS)<br>
&gt; &gt;&gt; PETSC_LIBDIR := $(PETSC_DIR)/$(PETSC_ARCH)/lib<br>
&gt; &gt;&gt; INCLUDES := $(INCLUDES) -I$(PETSC_DIR)/include<br>
&gt; &gt;&gt; -I$(PETSC_DIR)/include/mpiuni -I$(PETSC_DIR)/include/adic<br>
&gt; &gt;&gt; -I$(PETSC_DIR)/$(PETSC_ARCH)/include<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; ADDLIB := $(ADDLIB) -llapack<br>
&gt; &gt;&gt; #ADDLIB := $(ADDLIB) -L$(PETSC_LIBDIR) -Wl,-rpath,$(PETSC_LIBDIR)<br>
&gt; &gt;&gt; -lpetsccontrib -lpetscksp -lpetscsnes -lpetscvec -lpetsc -lpetscdm<br>
&gt; &gt;&gt; -lpetscmat -lpetscts<br>
&gt; &gt;&gt; ADDLIBSTATIC := $(ADDLIBSTATIC) $(PETSC_LIBDIR)/libmpiuni.a<br>
&gt; &gt;&gt; $(PETSC_LIBDIR)/libpetsccontrib.a $(PETSC_LIBDIR)/libpetscksp.a<br>
&gt; &gt;&gt; $(PETSC_LIBDIR)/libpetscsnes.a $(PETSC_LIBDIR)/libpetscvec.a<br>
&gt; &gt;&gt; $(PETSC_LIBDIR)/libpetsc.a $(PETSC_LIBDIR)/libpetscdm.a<br>
&gt; &gt;&gt; $(PETSC_LIBDIR)/libpetscmat.a $(PETSC_LIBDIR)/libpetscts.a<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; endif<br>
&gt; &gt;&gt; #End For PETSC<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; *****************************************************************************************<br>
&gt; &gt;&gt; On Tue, Mar 10, 2009 at 5:34 PM, Wei-Dong Lian &lt;<a href="mailto:weidong.lian@gmail.com">weidong.lian@gmail.com</a>&gt;<br>
&gt; &gt;&gt; wrote:<br>
&gt; &gt;&gt; Hi,<br>
&gt; &gt;&gt; I did not use the PETSc makefiles. First I do not know where it located.<br>
&gt; &gt;&gt; Second, I have configured my makefile to link my programme, before it<br>
&gt; &gt;&gt; worked, that&#39;s in another computer, the difference lies in the fact that<br>
&gt; &gt;&gt; this time in the lib directory, there were not *.so library, but *.lib<br>
&gt; &gt;&gt; library. Maybe I think it is the problem.<br>
&gt; &gt;&gt; Thanks.<br>
&gt; &gt;&gt; Weidong<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; On Tue, Mar 10, 2009 at 5:07 PM, Matthew Knepley &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt;<br>
&gt; &gt;&gt; wrote:<br>
&gt; &gt;&gt; On Tue, Mar 10, 2009 at 10:59 AM, Wei-Dong Lian &lt;<a href="mailto:weidong.lian@gmail.com">weidong.lian@gmail.com</a>&gt;<br>
&gt; &gt;&gt; wrote:<br>
&gt; &gt;&gt; Hello everyone,<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I compiled the petsc-3.0.0-p3 with GCC 3.4.3 under linux 64. But the<br>
&gt; &gt;&gt; compiler gave me the following information, see result_1.<br>
&gt; &gt;&gt; I also ran the &quot;make test&quot; and it worked successfully, but when I linked<br>
&gt; &gt;&gt; petsc to compile my programme, it told me that information see results_2.<br>
&gt; &gt;&gt; Any suggestion will be appreciated.<br>
&gt; &gt;&gt; Thank you in advance.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 1) Any report like this should be sent to <a href="mailto:petsc-maint@mcs.anl.gov">petsc-maint@mcs.anl.gov</a> because<br>
&gt; &gt;&gt; we need configure.log and make*.log.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 2) The warning about -PIC comes about because we cannot parse the warning<br>
&gt; &gt;&gt; messages from your compiler. We can try to<br>
&gt; &gt;&gt;     add this in when we get the log.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; 3) If &#39;make test&#39; works and your link does not, then you have constructed<br>
&gt; &gt;&gt; your link line incorrectly. Are you using the PETSc makefiles?<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;  Matt<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Weidong<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; $$$$$$$$$$$$$$$$$$$$$Result_1$$$$$$$$$$$$$$$$$$$$$$$$$$$$$<br>
&gt; &gt;&gt; /ftn-custom<br>
&gt; &gt;&gt; g++: option « -PIC » non reconnue<br>
&gt; &gt;&gt; libfast in:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/ts/impls<br>
&gt; &gt;&gt; libfast in:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/ts/impls/explicit<br>
&gt; &gt;&gt; libfast in:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/ts/impls/explicit/euler<br>
&gt; &gt;&gt; g++: option « -PIC » non reconnue<br>
&gt; &gt;&gt; libfast in:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/ts/impls/explicit/rk<br>
&gt; &gt;&gt; g++: option « -PIC » non reconnue<br>
&gt; &gt;&gt; libfast in:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/ts/impls/explicit/rk/ftn-auto<br>
&gt; &gt;&gt; g++: option « -PIC » non reconnue<br>
&gt; &gt;&gt; libfast in:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/ts/impls/implicit<br>
&gt; &gt;&gt; libfast in:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/ts/impls/implicit/beuler<br>
&gt; &gt;&gt; g++: option « -PIC » non reconnue<br>
&gt; &gt;&gt; libfast in:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/ts/impls/implicit/cn<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; #####################################results_2################################<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/Solver/petscSeq/x86_64_linux/lib/libpetscdm.a(daint.o)(.text+0x2aaf):<br>
&gt; &gt;&gt; In function `DAGetWireBasketInterpolation(_p_DA*, _p_Mat*, MatReuse,<br>
&gt; &gt;&gt; _p_Mat**)&#39;:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/dm/da/utils/daint.c:201:<br>
&gt; &gt;&gt; undefined reference to `PetscTableCreate(int, _n_PetscTable**)&#39;<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/Solver/petscSeq/x86_64_linux/lib/libpetscdm.a(daint.o)(.text+0x2b3d):/usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/dm/da/utils/daint.c:203:<br>
&gt; &gt;&gt; undefined reference to `PetscTableAddCount(_n_PetscTable*, int)&#39;<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/Solver/petscSeq/x86_64_linux/lib/libpetscdm.a(daint.o)(.text+0x2ba1):/usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/dm/da/utils/daint.c:205:<br>
&gt; &gt;&gt; undefined reference to `PetscTableGetCount(_n_PetscTable*, int*)&#39;<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/Solver/petscSeq/x86_64_linux/lib/libpetscdm.a(daint.o)(.text+0x2d24):/usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/dm/da/utils/daint.c:209:<br>
&gt; &gt;&gt; undefined reference to `PetscTableFind(_n_PetscTable*, int, int*)&#39;<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/Solver/petscSeq/x86_64_linux/lib/libpetscdm.a(daint.o)(.text+0x2d8d):/usr/local/temp/lian/Develop/latest/Solver/petscSeq/src/dm/da/utils/daint.c:212:<br>
&gt; &gt;&gt; undefined reference to `PetscTableDestroy(_n_PetscTable*)&#39;<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/Solver/petscSeq/x86_64_linux/lib/libpetscdm.a(daint.o)(.text+0x5adf):<br>
&gt; &gt;&gt; In function `DAGetFaceInterpolation(_p_DA*, _p_Mat*, MatReuse, _p_Mat**)&#39;:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; #####################################################################################<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; My configuration of petsc:<br>
&gt; &gt;&gt; &amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;<br>

&gt; &gt;&gt;<br>
&gt; &gt;&gt;                            Pushing language C<br>
&gt; &gt;&gt;                            Popping language C<br>
&gt; &gt;&gt;                            Pushing language Cxx<br>
&gt; &gt;&gt;                            Popping language Cxx<br>
&gt; &gt;&gt;                            Pushing language FC<br>
&gt; &gt;&gt;                            Popping language FC<br>
&gt; &gt;&gt; sh: /bin/sh<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/OpenSource/petsc-3.0.0-p3/config/BuildSystem/config/packages/config.gue<br>
&gt; &gt;&gt; ss<br>
&gt; &gt;&gt; Executing: /bin/sh<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/OpenSource/petsc-3.0.0-p3/config/BuildSystem/config/packages/con<br>
&gt; &gt;&gt; fig.guess<br>
&gt; &gt;&gt; sh: x86_64-unknown-linux-gnu<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; sh: /bin/sh<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/OpenSource/petsc-3.0.0-p3/config/BuildSystem/config/packages/config.sub<br>
&gt; &gt;&gt;  x86_64-unknown-linux-gnu<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Executing: /bin/sh<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/OpenSource/petsc-3.0.0-p3/config/BuildSystem/config/packages/con<br>
&gt; &gt;&gt; fig.sub x86_64-unknown-linux-gnu<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; sh: x86_64-unknown-linux-gnu<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; ================================================================================<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; ================================================================================<br>
&gt; &gt;&gt; Starting Configure Run at Tue Mar 10 16:23:30 2009<br>
&gt; &gt;&gt; Configure Options: --configModules=PETSc.Configure<br>
&gt; &gt;&gt; --optionsModule=PETSc.compilerOptions --with-cc=gcc --with-fc=g77 --with-cx<br>
&gt; &gt;&gt; x=g++ --with-mpi=0 --with-x=0 --with-clanguage=cxx --with-shared=1<br>
&gt; &gt;&gt; --with-dynamic=1<br>
&gt; &gt;&gt; Working directory:<br>
&gt; &gt;&gt; /usr/local/temp/lian/Develop/latest/Solver/OpenSource/petsc-3.0.0-p3<br>
&gt; &gt;&gt; Machine uname:<br>
&gt; &gt;&gt; (&#39;Linux&#39;, &#39;frioul&#39;, &#39;2.6.9-22.ELsmp&#39;, &#39;#1 SMP Sat Oct 8 21:32:36 BST<br>
&gt; &gt;&gt; 2005&#39;, &#39;x86_64&#39;)<br>
&gt; &gt;&gt; Python version:<br>
&gt; &gt;&gt; 2.3.4 (#1, Feb 17 2005, 21:01:10)<br>
&gt; &gt;&gt; [GCC 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)]<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; ================================================================================<br>
&gt; &gt;&gt;        Pushing language C<br>
&gt; &gt;&gt;        Popping language C<br>
&gt; &gt;&gt;        Pushing language Cxx<br>
&gt; &gt;&gt;        Popping language Cxx<br>
&gt; &gt;&gt;        Pushing language FC<br>
&gt; &gt;&gt;        Popping language FC<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; ================================================================================<br>
&gt; &gt;&gt; TEST configureExternalPackagesDir from<br>
&gt; &gt;&gt; config.framework(/usr/local/temp/lian/Develop/latest/Solver/OpenSource/petsc-3.0.0-p3/c<br>
&gt; &gt;&gt; onfig/BuildSystem/config/framework.py:815)<br>
&gt; &gt;&gt; TESTING: configureExternalPackagesDir from<br>
&gt; &gt;&gt; config.framework(config/BuildSystem/config/framework.py:815)<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; ================================================================================<br>
&gt; &gt;&gt; TEST configureLibrary from<br>
&gt; &gt;&gt; PETSc.packages.NetCDF(/usr/local/temp/lian/Develop/latest/Solver/OpenSource/petsc-3.0.0-p3/config/P<br>
&gt; &gt;&gt; ETSc/packages/NetCDF.py:10)<br>
&gt; &gt;&gt; TESTING: configureLibrary from<br>
&gt; &gt;&gt; PETSc.packages.NetCDF(config/PETSc/packages/NetCDF.py:10)<br>
&gt; &gt;&gt;  Find a NetCDF installation and check if it can work with PETSc<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; ================================================================================<br>
&gt; &gt;&gt; TEST configureLibrary from<br>
&gt; &gt;&gt; PETSc.packages.PVODE(/usr/local/temp/lian/Develop/latest/Solver/OpenSource/petsc-3.0.0-p3/config/PE<br>
&gt; &gt;&gt; TSc/packages/PVODE.py:10)<br>
&gt; &gt;&gt; TESTING: configureLibrary from<br>
&gt; &gt;&gt; PETSc.packages.PVODE(config/PETSc/packages/PVODE.py:10)<br>
&gt; &gt;&gt;  Find a PVODE installation and check if it can work with PETSc<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; ================================================================================<br>
&gt; &gt;&gt; TEST configureDebuggers from<br>
&gt; &gt;&gt; PETSc.utilities.debuggers(/usr/local/temp/lian/Develop/latest/Solver/OpenSource/petsc-3.0.0-p3/co<br>
&gt; &gt;&gt; nfig/PETSc/utilities/debuggers.py:22)<br>
&gt; &gt;&gt; TESTING: configureDebuggers from<br>
&gt; &gt;&gt; PETSc.utilities.debuggers(config/PETSc/utilities/debuggers.py:22)<br>
&gt; &gt;&gt;  Find a default debugger and determine its arguments<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; --<br>
&gt; &gt;&gt; What most experimenters take for granted before they begin their<br>
&gt; &gt;&gt; experiments is infinitely more interesting than any results to which their<br>
&gt; &gt;&gt; experiments lead.<br>
&gt; &gt;&gt; -- Norbert Wiener<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; </div></div></blockquote></div><br>