Hi, recently I use the gcc 4.4 to compile fortran programs.and then I use ld to link these programs .But the ELF I get is a dynamic link file.However I want to link these files statically for the reason that I want the VirtAdd of LOAD to be determined in an ELF,so I use the -Bstatic -lgfortran. But some problems occurs,and it means that some libraries cannot be found.So I see the files in the gcc directory. I find there is a libgfortran.a and libgfortran.so as well.And I know the former is a static library and the latter is a shared library.But what is the difference between them and how can I just use the libgfortran.a to link the fortran programs. The follows is the errors when i use the -Bstatic -lgfortran: /usr/lib/gcc/x86_64-linux-gnu/4.4//libgfortran.a(compile_options.o): In function `_gfortran_set_options': (.text+0x165): undefined reference to `signal' /usr/lib/gcc/x86_64-linux-gnu/4.4//libgfortran.a(compile_options.o): In function `_gfortran_set_options': (.text+0x174): undefined reference to `signal' /usr/lib/gcc/x86_64-linux-gnu/4.4//libgfortran.a(compile_options.o): In function `_gfortran_set_options': (.text+0x183): undefined reference to `signal' /usr/lib/gcc/x86_64-linux-gnu/4.4//libgfortran.a(compile_options.o): In function `_gfortran_set_options': Hope anyone can help me ,thanks in advance~ Best~