gfortran: fatal error: cannot specify ‘-o’ with ‘-c’, ‘-S’ or ‘-E’ with multiple files
时间: 2024-09-21 10:08:51 浏览: 41
当你尝试使用gfortran编译器对多文件 Fortran 程序进行编译时,错误信息 "gfortran: fatal error: cannot specify '-o' with '-c', '-S', or '-E' with multiple files" 提示了一个限制。`-o` 标志用于指定生成的目标可执行文件名,而 `-c`, `-S`, 或 `-E` 分别代表单独编译源文件到对象文件、生成汇编源码或预处理阶段的输出。
这个错误意味着当你在这些选项中同时指定了 `-o` 和多个输入文件时,gfortran 不支持一次性对多文件进行这种组合操作。解决此问题通常需要分开处理每个源文件:
1. 对于每个源文件,先使用 `-c` 编译单个源文件,生成对应的.o(对象文件):
```
gfortran -c file1.f90
```
2. 然后为所有编译后的对象文件合并成一个可执行文件,如:
```
gfortran -o executable_name object_file1.o object_file2.o ...
```
或者,如果你想要一次性的命令行完成整个过程,可以先列出所有需要编译的文件,然后使用`$(wildcard *.f90)`这样的通配符来获取它们:
```
gfortran $(wildcard *.f90) -o final_executable
```
请注意,这适用于Fortran 90/95/2003/2008/2018等版本,新版本的gfortran可能会有不同的语法或更灵活的选项。