2013-10-10 81 views
3

我想使用Sublime Text 3构建Free Pascal 3.我总是会遇到编码错误(请参阅下文)。我也试着用编码保存文件。使用Sublime Text构建Pascal 3

我创建了一个sublime-build文件:

{ 
    "cmd":["fpc $file & ${file_path}/${file_base_name}.exe"], 
    "shell" : true, 
} 

我的测试程序是一个简单的Hello World:

Program HelloWorld; 
begin 
    writeln("Hello, world!"); 
    readln; 
end. 

我的错误代码:

[Decode error - output not utf-8] 
[Finished in 0.0s with exit code 1] 
[cmd: ['fpc C:\\Users\\korndi\\Documents\\FREI\\hellop.p & C:\\Users\\korndi\\Documents\\FREI/hellop.exe']] 
[dir: C:\Users\korndi\Documents\FREI] 
[path: C:\Python33\;;C:\FPC\2.6.2\bin\i386-Win32] 
+0

1)Pascal是奇怪的双引号。也许崇高检测到-A功能被FPC用于输出,并且因此假定输出是ascii。但是在Windows的控制台上输出utf-8并不正常。可能不得不为此调整崇高。一般来说:只要使用Lazarus :-) –

回答

3

这为我工作。
按Ctrl将建立自己的文件
按Ctrl将运行它(在外部CMD !!,噢yisS基因!

{ 
    "cmd": ["fpc", "${file_path}/${file_base_name}"], 
    "selector": "source.pascal", 
    "variants": [ 
     { 
      "cmd": ["start", "cmd", "/c", "$file_base_name.exe & pause"], 
      "name": "Run", 
      "shell": true 
     } 
    ] 
} 
+0

你能帮忙解决一个错误吗?当我按下ctrl shift b时,我得到''程序'不被识别为内部或外部命令,可操作程序或批处理文件。“但是当我手动运行它(通过打开.exe文件)它运行得很好。 – cgnx

+0

@ D.N你是否指向exe文件?你首先需要构建它(创建可执行文件),然后你可以从崇高运行它。它的作用是在命令行/ shell中执行一个命令'启动cmd/c your_file.exe&pause'。它需要查看文件。这是来自cmd的错误消息,对吗?它在什么目录下工作? – Qwerty

+0

我不知道为什么,但今天它似乎正常工作,昨天我不得不将目录与exe文件添加到路径。然而,今天,文件的位置并不重要。谢谢你:) – cgnx

0

如果你不需要在程序执行时输入数据,你可以试试这个:

{ 
    "cmd": ["fpc", "${file_name}", "&&", "${file_base_name}", "&&", "echo."], 
    "shell": true 
} 

echo.打印一个新行。

0

我制作了一个基于Qwerty的构建系统。当你按下Ctrl-B时,它会自动编译并运行你的程序。你也有2个旧变量。基本帕斯卡尔一个OS更名为帕斯卡尔 - 编译

{ 
     "shell": true, 
     "cmd": ["fpc", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/c", "$file_base_name.exe", "&", "pause"], 
     "selector": "source.pascal", 
     "variants": [ 
      { 
       "cmd": ["start", "cmd", "/c", "$file_base_name.exe & pause"], 
       "name": "Run", 
       "shell": true 
      }, 
      { 
       "cmd": ["fpc", "${file_path}/${file_base_name}"], 
       "name": "Compile", 
       "shell": true 
      } 
     ] 
    }