Sublime Text 3不接受MinGW的fortran

时间:2018-03-06 09:34:11

标签: fortran windows-10 mingw sublimetext3

我正在尝试从MinGW设置fortran(G95)以在Sublime Text 3中工作。 我看了How do you configure MinGW with Sublime Text 3?Could someone help me configure MinGW in SublimeText 3? (Newbie),我发现了这个:

{
"cmd": ["gcc", "${file}", "-o", "${file_base_name}.exe"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"shell": true,

"variants":
[
    {
        "name": "Run",
        "cmd": ["start", "cmd", "/k", "${file_path}/${file_base_name}.exe"],
        "shell": true
    }
]
}

所以我创建了文件packages / user / fortran(G95).sublime-build。在那里我不知道在$ {file_path}或$ {file_base_name}变量中写什么,所以我尝试了这个:

{
    "cmd": ["gcc", "C:/MinGW/bin", "-o", "g95.exe"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "C:/MinGW/bin",
    "selector": "source.c, source.c++",
    "shell": true,

    "variants":
    [
        {
            "name": "Run",
            "cmd": ["start", "cmd", "/k", "C:/MinGW/bin/g95.exe"],
            "shell": true
        }
    ]
}

但它返回:

  

C:/ MinGW的/ bin中/../ LIB / GCC /的mingw32 / 6.3.0 /../../../../的mingw32 / bin中/ ld.exe:   找不到C:/ MinGW / bin:权限被拒绝了collect2.exe:错误:ld   返回1退出状态[以0.3秒完成]。

我做得对吗,还是搞砸了创建文件的事情。

非常感谢您提供任何建议和帮助以使其发挥作用。

PS:我已经在PATH C中:/ MinGW / bin和C:/ MinGW / mingw32 / bin。我使用Windows 10 64位。

编辑: 现在我确实将文件更改为:

{
"cmd": ["gcc", "${file}", "-o", "${file_base_name}.exe"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"shell": true,

"variants":
[
    {
        "name": "Run",
        "cmd": ["start", "cmd", "/k", "${file_path}/${file_base_name}.exe"],
        "shell": true
    }
]
}

但是它说它在我的Hello world程序中不知道写函数和更多。

  

C:\用户\ TPN〜1 \应用程序数据\本地\ TEMP \ ccV3Loja.o:helloworld.f90 :(文本+ 0x3b):   未明确引用_gfortran_st_write' C:\Users\TPN~1\AppData\Local\Temp\ccV3Loja.o:helloworld.f90:(.text+0x59): undefined reference to _ gfortran_transfer_character_write'   C:\ Users \用户TPN〜1 \应用程序数据\本地\ TEMP \ ccV3Loja.o:helloworld.f90 :(文本+ 0x67)中:   对_gfortran_st_write_done' C:\Users\TPN~1\AppData\Local\Temp\ccV3Loja.o:helloworld.f90:(.text+0x8a): undefined reference to _ gfortran_set_args'的未定义引用   C:\ Users \用户TPN〜1 \应用程序数据\本地\ TEMP \ ccV3Loja.o:helloworld.f90 :(文本+ 0x9e):   未明确引用`_gfortran_set_options' collect2.exe:错误:ld   返回1退出状态[在1.0s完成]

1 个答案:

答案 0 :(得分:2)

您不应该更改${file}${file_base_name}${working_dir}。这些变量由ST解析以执行正确的cmd,请参阅official help和更完整的unoffical help

由于您已将C:/MinGW/binC:/MinGW/mingw32/bin添加到PATH,只需恢复原始文件packages/user/fortran(G95).sublime-build,并进行以下更改以处理fortran文件,然后重新启动Sublime-文字,你应该很高兴。

{
"cmd": ["gfortran", "${file}", "-o", "${file_base_name}.exe"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.f, source.f90, source.f95",
"shell": true,
"variants":
[
    {
        "name": "Run",
        "cmd": ["start", "cmd", "/k", "${file_path}/${file_base_name}.exe"],
        "shell": true
    }
]
}