首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在gfortran中使用PETSc,但它没有编译

在gfortran中使用PETSc,但它没有编译
EN

Stack Overflow用户
提问于 2014-04-14 06:24:19
回答 1查看 729关注 0票数 0

我想在fortran中测试和使用PESTc,所以我写了一些非常简单的空代码,比如(petscexe.F):

代码语言:javascript
复制
  PROGRAM petscexe
  INCLUDE 'petscsys.h'

  END PROGRAM petscexe

看看头文件是否可以正确导入。

我用gfortran编译这个文件:gfortran petscexe.F -I /opt/local/lib/petsc/include/finclude

头文件位于my computer中的此文件夹(/opt/local/lib/petsc/include/finclude)中。所以一切都会好起来的,但是...

错误是

代码语言:javascript
复制
Warning: petscsys.h:5: Illegal preprocessor directive

Warning: petscsys.h:6: Illegal preprocessor directive

Warning: petscsys.h:7: Illegal preprocessor directive

Warning: petscsys.h:9: Illegal preprocessor directive

Warning: petscsys.h:10: Illegal preprocessor directive

Warning: petscsys.h:11: Illegal preprocessor directive

Warning: petscsys.h:20: Illegal preprocessor directive

Warning: petscsys.h:22: Illegal preprocessor directive

Warning: petscsys.h:24: Illegal preprocessor directive

Warning: petscsys.h:87: Illegal preprocessor directive

Warning: petscsys.h:88: Illegal preprocessor directive

Warning: petscsys.h:89: Illegal preprocessor directive

Warning: petscsys.h:90: Illegal preprocessor directive

Warning: petscsys.h:91: Illegal preprocessor directive

Warning: petscsys.h:92: Illegal preprocessor directive

Warning: petscsys.h:93: Illegal preprocessor directive

Warning: petscsys.h:94: Illegal preprocessor directive

Warning: petscsys.h:119: Illegal preprocessor directive

Warning: petscsys.h:121: Illegal preprocessor directive

Warning: petscsys.h:123: Illegal preprocessor directive

Warning: petscsys.h:139: Illegal preprocessor directive

Warning: petscsys.h:143: Illegal preprocessor directive

Warning: petscsys.h:147: Illegal preprocessor directive

Warning: petscsys.h:153: Illegal preprocessor directive

Warning: petscsys.h:154: Illegal preprocessor directive

Warning: petscsys.h:156: Illegal preprocessor directive

Warning: petscsys.h:158: Illegal preprocessor directive

Warning: petscsys.h:159: Illegal preprocessor directive

Warning: petscsys.h:160: Illegal preprocessor directive

Warning: petscsys.h:162: Illegal preprocessor directive

Warning: petscsys.h:164: Illegal preprocessor directive

Warning: petscsys.h:165: Illegal preprocessor directive

Warning: petscsys.h:168: Illegal preprocessor directive

Warning: petscsys.h:170: Illegal preprocessor directive

Warning: petscsys.h:172: Illegal preprocessor directive

Warning: petscsys.h:234: Illegal preprocessor directive

Warning: petscsys.h:235: Illegal preprocessor directive

Warning: petscsys.h:236: Illegal preprocessor directive

Warning: petscsys.h:252: Illegal preprocessor directive

Warning: petscsys.h:254: Illegal preprocessor directive

Warning: petscsys.h:256: Illegal preprocessor directive

petscsys.h:18.6:
    Included at petscexe.F:2:

      PetscBool  PETSC_TRUE                                             
      1
Error: Unclassifiable statement at (1)
petscsys.h:19.6:
    Included at petscexe.F:2:

      PetscBool  PETSC_FALSE                                            
      1
Error: Unclassifiable statement at (1)
petscsys.h:23.29:
    Included at petscexe.F:2:

      parameter (PETSC_TRUE = .true.,PETSC_FALSE = .false.)             
                             1
Error: Can't convert LOGICAL(4) to REAL(4) at (1)
petscsys.h:25.6:
    Included at petscexe.F:2:

      PetscInt   PETSC_DECIDE,PETSC_DETERMINE                           
      1
Error: Unclassifiable statement at (1)
petscsys.h:28.6:
    Included at petscexe.F:2:

      PetscInt  PETSC_DEFAULT_INTEGER                                   
      1
Error: Unclassifiable statement at (1)
petscsys.h:31.6:
    Included at petscexe.F:2:

      PetscFortranDouble PETSC_DEFAULT_DOUBLE_PRECISION                 
      1
Error: Unclassifiable statement at (1)
petscsys.h:34.6:
    Included at petscexe.F:2:

      PetscEnum PETSC_FP_TRAP_OFF                                       
      1
Error: Unclassifiable statement at (1)
petscsys.h:35.6:
    Included at petscexe.F:2:

      PetscEnum PETSC_FP_TRAP_ON                                        
      1
Error: Unclassifiable statement at (1)
petscsys.h:43.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_DRAW_WORLD                          
      1
Error: Unclassifiable statement at (1)
petscsys.h:44.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_DRAW_SELF                           
      1
Error: Unclassifiable statement at (1)
petscsys.h:45.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_SOCKET_WORLD                        
      1
Error: Unclassifiable statement at (1)
petscsys.h:46.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_SOCKET_SELF                         
      1
Error: Unclassifiable statement at (1)
petscsys.h:47.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_STDOUT_WORLD                        
      1
Error: Unclassifiable statement at (1)
petscsys.h:48.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_STDOUT_SELF                         
      1
Error: Unclassifiable statement at (1)
petscsys.h:49.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_STDERR_WORLD                        
      1
Error: Unclassifiable statement at (1)
petscsys.h:50.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_STDERR_SELF                         
      1
Error: Unclassifiable statement at (1)
petscsys.h:51.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_BINARY_WORLD                        
      1
Error: Unclassifiable statement at (1)
petscsys.h:52.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_BINARY_SELF                         
      1
Error: Unclassifiable statement at (1)
petscsys.h:53.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_MATLAB_WORLD                        
      1
Error: Unclassifiable statement at (1)
petscsys.h:54.6:
    Included at petscexe.F:2:

      PetscFortranAddr PETSC_VIEWER_MATLAB_SELF                         
      1
Error: Unclassifiable statement at (1)
petscsys.h:75.6:
    Included at petscexe.F:2:

      PetscEnum PETSC_INT                                               
      1
Error: Unclassifiable statement at (1)
petscsys.h:76.6:
    Included at petscexe.F:2:

      PetscEnum PETSC_DOUBLE                                            
      1
Error: Unclassifiable statement at (1)
petscsys.h:77.6:
    Included at petscexe.F:2:

      PetscEnum PETSC_COMPLEX                                           
      1
Error: Unclassifiable statement at (1)
petscsys.h:78.6:
    Included at petscexe.F:2:

      PetscEnum PETSC_LONG                                              
      1
Error: Unclassifiable statement at (1)
petscsys.h:79.6:
    Included at petscexe.F:2:

      PetscEnum PETSC_SHORT                                             
      1
Error: Unclassifiable statement at (1)
Fatal Error: Error count reached limit of 25.

这是什么错误?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-09-03 13:54:47

在进行编译时,必须使用-cpp -dM作为必要的标志。此外,您必须使用C++/C风格,即#include + ...,用于包含。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23049193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档