在Ubuntu上的Fortran zlib示例编译

时间:2016-05-31 22:35:51

标签: linux ubuntu compilation fortran

我喜欢在C ++中使用gzstream库,并希望在Fortran77代码中使用类似的功能。但是,我的MWE没有找到引用,如果我安装了正确的Fortran包装器,我也不清楚。

DESY提供了有关使用Fortran中的zlib的文档,但没有说明它所引用的zlib版本或如何获取Fortran包装器。

我希望尽可能使用标准软件包,以便更新。

dpkg -l 'zlib*'的输出:

||/ Name                        Version            Architecture       Description
+++-===========================-==================-==================-===========
un  zlib1                       <none>             <none>             (no description available)
un  zlib1-dev                   <none>             <none>             (no description available)
ii  zlib1g:i386                 1:1.2.8.dfsg-2ubun i386               compression library - runtime
ii  zlib1g-dev:i386             1:1.2.8.dfsg-2ubun i386               compression library - development

zlib1-dev没有安装候选人。

dpkg -L zlib1g-dev:i386显示静态库的位置 /usr/lib/i386-linux-gnu/libz.a

因此,为了排除库路径问题,我正在尝试编译 gfortran -fdefault-real-8 -fdefault-double-8 -O -Wall -Wtabs zlibtest.f /usr/lib/i386-linux-gnu/libz.a

我正在获取

/tmp/ccWl8klj.o: In function `MAIN__':
zlibtest.f:(.text+0x26): undefined reference to `gzopen_'
zlibtest.f:(.text+0xfd): undefined reference to `gzwrite_'
zlibtest.f:(.text+0x128): undefined reference to `gzclose_'
collect2: error: ld returned 1 exit status

我的MWE代码:

      program zlibtest
      implicit none

      integer ii
      integer fhandle, istat
      character*256 outline
      parameter (fhandle=0)

      call gzopen(fhandle, 'w', 'zlibtest.dat', istat)
      do ii=1,10
        write(outline, '(3i10)') ii, ii**2, ii**3
        call gzwrite(fhandle, outline)
      end do
      call gzclose(fhandle, istat)

      end program

0 个答案:

没有答案
相关问题