【发布时间】:2018-05-26 20:13:08
【问题描述】:
我有一个 Fortran 95 代码,我通过终端窗口在我的 Linux 操作系统上编译和运行,首先编译各个模块,然后编译主程序。现在我正在尝试从 sublime text 3.0 版运行相同的代码,而不使用终端窗口。我从这个视频中得到了动力:https://www.youtube.com/watch?v=_eZyTNthJG4
但是当我ctrl+b,构建代码时,它会给出以下控制台输出:
/tmp/cc4nYhyn.o: In function `MAIN__':
problem_main.f95:(.text+0x2e5): undefined reference to `__universal_parameter_declaration_MOD_compute_starts'
problem_main.f95:(.text+0x33e): undefined reference to `__array_creator_MOD_linear_spaced'
problem_main.f95:(.text+0x356): undefined reference to `__derivatives_MOD_dydx'
problem_main.f95:(.text+0x3e4): undefined reference to `__ode_solver_MOD_heun'
problem_main.f95:(.text+0x69e): undefined reference to `__universal_parameter_declaration_MOD_compute_ends'
problem_main.f95:(.text+0x6b0): undefined reference to `__universal_parameter_declaration_MOD_compute_ends'
problem_main.f95:(.text+0x6b8): undefined reference to `__universal_parameter_declaration_MOD_compute_starts'
problem_main.f95:(.text+0x6c4): undefined reference to `__universal_parameter_declaration_MOD_compute_time'
problem_main.f95:(.text+0x726): undefined reference to `__universal_parameter_declaration_MOD_compute_time'
problem_main.f95:(.text+0x988): undefined reference to `__universal_parameter_declaration_MOD_data_write_ends'
problem_main.f95:(.text+0x99a): undefined reference to `__universal_parameter_declaration_MOD_data_write_ends'
problem_main.f95:(.text+0x9a2): undefined reference to `__universal_parameter_declaration_MOD_compute_ends'
problem_main.f95:(.text+0x9ae): undefined reference to `__universal_parameter_declaration_MOD_data_write_time'
problem_main.f95:(.text+0xa10): undefined reference to `__universal_parameter_declaration_MOD_data_write_time'
problem_main.f95:(.text+0xa77): undefined reference to `__universal_parameter_declaration_MOD_plot_ends'
problem_main.f95:(.text+0xa89): undefined reference to `__universal_parameter_declaration_MOD_plot_ends'
problem_main.f95:(.text+0xa91): undefined reference to `__universal_parameter_declaration_MOD_data_write_ends'
problem_main.f95:(.text+0xa9d): undefined reference to `__universal_parameter_declaration_MOD_plot_time'
problem_main.f95:(.text+0xaa5): undefined reference to `__universal_parameter_declaration_MOD_plot_ends'
problem_main.f95:(.text+0xaad): undefined reference to `__universal_parameter_declaration_MOD_compute_starts'
problem_main.f95:(.text+0xab9): undefined reference to `__universal_parameter_declaration_MOD_total_time'
problem_main.f95:(.text+0xb1b): undefined reference to `__universal_parameter_declaration_MOD_plot_time'
problem_main.f95:(.text+0xbad): undefined reference to `__universal_parameter_declaration_MOD_total_time'
collect2: error: ld returned 1 exit status
[Finished in 0.1s with exit code 1]
[shell_cmd: gfortran '/home/vikash/Work/Fort_test/problem_main.f95' -o '/home/vikash/Work/Fort_test/problem_main']
[dir: /home/vikash/Work/Fort_test]
[path: /home/vikash/bin:/home/vikash/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
从 sublime text 运行时,编译器似乎无法检测到与主程序文件位于同一文件夹中的模块。我也尝试通过编辑器构建单个模块,但它也没有工作。我该如何解决这个问题?
【问题讨论】:
-
您使用什么构建系统来执行此操作?如果您在终端中执行相同的操作,它执行的命令对您有用吗?
-
它是工具-构建系统-Gfortran。当我执行 ctrl + shift B 时,我可以选择 gfortran - run,但这也无济于事。
-
在通过终端窗口运行时,我只是“sh”了一个 .txt 文件,它完成了 makefile 的工作并考虑了各个模块之间的依赖关系。文件内容为:
-
rm *.mod *.o vikash_solution; gfortran -c lib_universal_parameter_declaration.f95; gfortran -c lib_local_parameter_declaration.f95 gfortran -c lib_array_creator.f95; gfortran -c lib_derivatives.f95; gfortran -c lib_ode_solver.f95; gfortran -c 问题_main.f95; gfortran lib_universal_parameter_declaration.o lib_local_parameter_declaration.o lib_array_creator.o lib_derivatives.o lib_ode_solver.o question_main.o -o vikash_solution; ./vikash_solution;证明 *.eps
-
Sublime 不附带 `GFortran` 构建系统,因此它可能来自某些软件包。从您的描述看来,它只是试图编译和构建当前文件。出于您的目的,制作与在终端中执行相同操作的自定义构建可能更容易。
标签: fortran sublimetext3 sublimetext gfortran