you don't invoke linker to create .o files. Here is the format you can use. Satish --- balay@ pj01: ~/test$ ls app. c app-req. c makefile balay@ pj01: ~/test$ cat makefile all: app CLEANFILES = app include ${PETSC_DIR}/lib/petsc/conf/variables include
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
 
ZjQcmQRYFpfptBannerEnd
you don't invoke linker to create .o files. Here is the format you can use.

Satish

---
balay@pj01:~/test$ ls
app.c  app-req.c  makefile
balay@pj01:~/test$ cat makefile 
all: app

CLEANFILES = app

include ${PETSC_DIR}/lib/petsc/conf/variables
include ${PETSC_DIR}/lib/petsc/conf/rules

app: app-req.o

balay@pj01:~/test$ make
mpicc -o app-req.o -c -fPIC -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -Wno-stringop-overflow -fstack-protector -fvisibility=hidden -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -Wno-stringop-overflow -fstack-protector -fvisibility=hidden -g3 -O0  -I/home/balay/petsc/include -I/home/balay/petsc/arch-linux-c-debug/include    app-req.c
mpicc -fPIC -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -Wno-stringop-overflow -fstack-protector -fvisibility=hidden -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -Wno-stringop-overflow -fstack-protector -fvisibility=hidden -g3 -O0  -I/home/balay/petsc/include -I/home/balay/petsc/arch-linux-c-debug/include     -Wl,-export-dynamic app.c app-req.o  -Wl,-rpath,/home/balay/petsc/arch-linux-c-debug/lib -L/home/balay/petsc/arch-linux-c-debug/lib -Wl,-rpath,/software/mpich-4.1.1/lib -L/software/mpich-4.1.1/lib -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/13 -L/usr/lib/gcc/x86_64-redhat-linux/13 -lpetsc -llapack -lblas -lm -lX11 -lmpifort -lmpi -lgfortran -lm -lgfortran -lm -lgcc_s -lquadmath -lstdc++ -lquadmath -o app
balay@pj01:~/test$ 


On Sat, 13 Jul 2024, Ivan Luthfi wrote:

> Hi Mr. Knepley,
> I already copy and edit the makefile shared by PETSC. And here is the
> modification i made to compile my codes:
> 
> app : MsFEM_poisson2D_DMDA.o UserParameter.o FormFunction.o MsFEM.o
> PCMsFEM.o
>         $(LINK.C) -o $@ $^ $(LDLIBS)
> 
> MsFEM_poisson2D_DMDA.o: MsFEM_poisson2D_DMDA.c
>         $(LINK.C) -o $@ $^ $(LDLIBS)
> 
> UserParameter.o: UserParameter.c
>         $(LINK.C) -o $@ $^ $(LDLIBS)
> 
> FormFunction.o: FormFunction.c
>         $(LINK.C) -o $@ $^ $(LDLIBS)
> 
> MsFEM.o: MsFEM.c
>         $(LINK.C) -o $@ $^ $(LDLIBS)
> 
> PCMsFEM.o: PCMsFEM.c
>         $(LINK.c) -o $@ $^ $(LDLIBS)
> 
> clean:
>         rm -rf app *.o
> 
> However, after I compile it by using "make app" it said that i have "***
> missing separator. Stop. " in line 24, which is in that first "$(LINK.C) -o
> ........". What is wrong from my makefile?
> 
> Pada Jum, 12 Jul 2024 pukul 18.57 Matthew Knepley <[email protected]>
> menulis:
> 
> > On Fri, Jul 12, 2024 at 3:16 AM Ivan Luthfi <[email protected]> wrote:
> >
> >> I try to compile my code, but i get this error. Anyone can help me? Here
> >> is my terminal: $make bin_MsFEM_poisson2D_DMDA mpicc -o
> >> bin_MsFEM_poisson2D_DMDA MsFEM_poisson2D_DMDA. o UserParameter. o
> >> FormFunction. o MsFEM. o PCMsFEM. o /home/ivan/petsc/opt-3. 21.
> >> 2/lib/libpetsc. so
> >> ZjQcmQRYFpfptBannerStart
> >> This Message Is From an External Sender
> >> This message came from outside your organization.
> >>
> >> ZjQcmQRYFpfptBannerEnd
> >> I try to compile my code, but i get this error. Anyone can help me?
> >>
> >> Here is my terminal:
> >>
> >> $make bin_MsFEM_poisson2D_DMDA
> >>
> >> mpicc -o bin_MsFEM_poisson2D_DMDA MsFEM_poisson2D_DMDA.o UserParameter.o
> >> FormFunction.o MsFEM.o PCMsFEM.o
> >> /home/ivan/petsc/opt-3.21.2/lib/libpetsc.so \
> >>         /home/ivan/petsc/opt-3.21.2/lib/libsuperlu_dist.so \
> >>         /home/ivan/petsc/opt-3.21.2/lib/libparmetis.so \
> >>         /home/ivan/petsc/opt-3.21.2/lib/libmetis.so \
> >>         /usr/lib64/atlas/liblapack.a /usr/lib64/libblas.so.3
> >> /usr/bin/ld: cannot find /usr/lib64/atlas/liblapack.a: No such file or
> >> directory
> >> /usr/bin/ld: cannot find /usr/lib64/libblas.so.3: No such file or
> >> directory
> >> collect2: error: ld returned 1 exit status
> >> make: *** [makefile:18: bin_MsFEM_poisson2D_DMDA] Error 1
> >>
> >
> > You are specifying libraries that do not exist. Do not do this. You can
> > use the PETSc Makefiles to build
> > this, as described in the manual:
> >
> >
> > https://urldefense.us/v3/__https://petsc.org/main/manual/getting_started/*sec-writing-application-codes__;Iw!!G_uCfscf7eWS!aywTBmwveIMzChLO3PC6clvS78cZUC_7xMDMvnoHJZcLrpBUjAjMHGljcIDKjFtgJTRkfdfaW-YgEW8bUxu7RSJD2w$
> >
> > under the section "For adding PETSc to an existing application"
> >
> >   THanks,
> >
> >      Matt
> >
> >
> >> --
> >> Best regards,
> >>
> >> Ivan Luthfi Ihwani
> >>
> >
> >
> > --
> > What most experimenters take for granted before they begin their
> > experiments is infinitely more interesting than any results to which their
> > experiments lead.
> > -- Norbert Wiener
> >
> > https://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!aywTBmwveIMzChLO3PC6clvS78cZUC_7xMDMvnoHJZcLrpBUjAjMHGljcIDKjFtgJTRkfdfaW-YgEW8bUxtdSlUYlw$
> > <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!aywTBmwveIMzChLO3PC6clvS78cZUC_7xMDMvnoHJZcLrpBUjAjMHGljcIDKjFtgJTRkfdfaW-YgEW8bUxsPqBOxdw$>
> >
> 
> 
> 

Reply via email to