gpt4 book ai didi

python - f2py 和 gfortran : undefined reference to `main' 编译错误

转载 作者:行者123 更新时间:2023-12-03 14:59:16 25 4
gpt4 key购买 nike

我最近开始使用 f2py 和 python2.7 来处理与 Fortran 中的海洋模型 (ROMS) 相关的一些代码。我的工作站细节是 Ubuntu 16.04,带有 python2.7、anaconda2 和 gfortran。我也安装了 netcdf 和 hdf5 库。

makefile 中的指令如下(在一行中):

$(F2PY) --fcompiler=gfortran --f90flags=$(F2PY_F90_FLAG) $(F2PY_LIB) $(F2PY_INCLUDE) $(OBJF2PY) -m -c scrip pyscrip.f90



在哪里:
  • F2PY 链接到 中的 f2py 编译器/bin 目录。
  • OBJF2PY 是使用 f2py 编译的一组目标文件(所有相关的源文件都在目录中)。
  • F2PY_INCLUDE 是包含路径(包含 netcdf.inc 和 netcdf.mod)
  • -L${LIBDIR} -lnetcdf -lnetcdff -lhdf5 -lhdf5_hl - 是库路径,链接到 netcdf 和 hdf5 库文件。
  • F2PY_F90_FLAG = '-g -fdefault-real-8 -ffixed-form -O2 -fPIC -m64 -shared ' - 链接到 f2py 的编译器标志。

  • 在编译过程中,我收到一个错误:

    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: In function _start:
    (.text+0x20): undefined reference to 'main'
    collect2: error: ld returned 1 exit status



    我不明白为什么会出现这个错误。指令的顺序是否正确?它与编译器标志有关吗?是否有代码需要的任何其他包含文件(netcdf.inc 除外)或任何其他库(netcdf 和 hdf5 库除外)?

    最佳答案

    答案在GitHub上给出并且是添加 -shared您的 LDFLAGS 的选项环境变量。试试 LDFLAGS="-shared $LDFLAGS"运行前 f2py .

    关于python - f2py 和 gfortran : undefined reference to `main' 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41291074/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com