Автор Тема: Настройка Sublime Text 2 как компилтяра для C  (Прочитано 21605 раз)

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Всем привет!
Надеюсь на этом специализированном форуме по Sublime Text мне сразу же помогут)
Перехожу к делу... Я начал изучать язык программирования C (до этого писал на JavaScrip, PHP). Но вот столкнулся с проблемой что при написании файла (hello.c) с содержимым:
Цитировать
#include <stdio.h>
int main()
{
   float x;
   printf("Type price = ");
   scanf("%f",&x);
   printf("You typed price = %f \n\r",x);
   return 0;
}
и нажатием Ctrl+B (или F7), то внизу вылазит Build окошко абсолютно пустое!
а в консоли пишет:
Цитировать
Running c:\MinGW\g++ C:\www\htdocs\hello.c -o C:\www\htdocs/hello
Encoding error...
VARIABLE:  COMPUTERNAME  : 
Traceback (most recent call last):
  File ".\sublime_plugin.py", line 337, in run_
    return self.run(**args)
  File ".\exec.py", line 159, in run
  File ".\exec.py", line 50, in __init__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcf in position 10: ordinal not in range(128)

подскажите мне пожалуйста в чём может быть проблема?
вот настройки с C++ build:
Цитировать
{
   "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${file_path}",
   "selector": "source.c, source.c++",

   "variants":
   [
      {
         "name": "Run",
         "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
      }
   ]
}

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #1 : Октября 04, 2013, 17:36:12 »
Когда компилил под Windows, вроде бы проблем не было. Нагуглил такое решение:

Заменить строку в файле exec.py
proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())на
os.path.expandvars(v.decode(sys.getfilesystemencoding())).encode(sys.getfilesystemencoding())

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #2 : Октября 04, 2013, 18:03:17 »
Когда компилил под Windows, вроде бы проблем не было. Нагуглил такое решение:

Заменить строку в файле exec.py
proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())на
os.path.expandvars(v.decode(sys.getfilesystemencoding())).encode(sys.getfilesystemencoding())

Сделал как ты сказал и теперь при нажатии на Ctrl+B (или F7) в окне Build появляется такое:
Цитировать
[Error 2]
[cmd:  [u'g++', u'C:\\www\\htdocs\\hello.c', u'-o', u'C:\\www\\htdocs/hello']]
[dir:  C:\www\htdocs]
[path: C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin;C:\php;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\]
[Finished]
Что это значит? Как сделать что-бы создавался файл с расширением *.exe в папке проекта?
P.S: В переменные среды я никаких изменений не вносил! Читал где-то что нужно. Стоит ли?
« Последнее редактирование: Октября 04, 2013, 18:05:10 от MADONZY »

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #3 : Октября 04, 2013, 18:31:14 »
Добавить в переменную PATH путь до твоего g++.

Пуск > Компьютер > Свойства > Дополнительные параметры > Параметры среды

Переменная path > изменить > в конец дописать ;c:\MinGW\bin (или ту директорию, в которую у тебя установлен MinGW).

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #4 : Октября 04, 2013, 19:47:38 »
Добавить в переменную PATH путь до твоего g++.

Пуск > Компьютер > Свойства > Дополнительные параметры > Параметры среды

Переменная path > изменить > в конец дописать ;c:\MinGW\bin (или ту директорию, в которую у тебя установлен MinGW).
Добавил, но всё же всё равно конфиг для С поставил такой:
Цитировать
{
   "cmd": ["gcc", "${file}", "-o", "${file_path}/${file_base_name}"],
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${file_path}",
   "selector": "source.c",
   "shell": true,
   "path": "C:\\MinGW\\bin\\"
}
а для С++ такой:
Цитировать
{
   "cmd": ["g++", "${file}", "-static-libstdc++", "-o", "${file_path}/${file_base_name}"],
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${file_path}",
   "selector": "source.c++",
   "shell": true,
   "path": "C:\\MinGW\\bin\\"
}
Всё работает идеально!!! Но! Теперь вопрос №2! Как сделать что-бы при сохранении этот *.exe сразу-же запускался?

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #5 : Октября 04, 2013, 21:50:14 »
Никто не знает как запустить откомпилированный файл после завершения компиляции? :(

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #6 : Октября 05, 2013, 00:58:04 »
Даблклик? ;)

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #7 : Октября 05, 2013, 02:48:25 »
Даблклик? ;)

ахахах))) подъ*бал))))))))))
имеется в виду что-бы сразу после нажатия Ctrl+b происходила компиляция и открывался откомпилированый *.exe )))

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #8 : Октября 05, 2013, 14:07:25 »
Ну так как?)))

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #9 : Октября 05, 2013, 14:45:59 »
Компиляция и запуск должны происходить командой Run (Ctrl+Shift+B). Но под Windows она не работает. Нашел такое решение:

{
  "variants":
  [
    {
      "name": "Run",
      "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "${file_path}/${file_base_name}"], // Заменить.
      "shell": true // Добавить.
    }
  ]
}
« Последнее редактирование: Октября 05, 2013, 14:50:01 от Loac »

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #10 : Октября 05, 2013, 16:12:24 »
Я очень извиняюсь, но не мог-бы ты исправить мои 2 кода, а то я что-то не очень допонял куда то вставлять и что менять(((
Цитировать
{
   "cmd": ["gcc", "${file}", "-o", "${file_path}/${file_base_name}"],
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${file_path}",
   "selector": "source.c",
   "shell": true,
   "path": "C:\\MinGW\\bin\\"
}
а для С++ такой:
Цитировать
{
   "cmd": ["g++", "${file}", "-static-libstdc++", "-o", "${file_path}/${file_base_name}"],
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${file_path}",
   "selector": "source.c++",
   "shell": true,
   "path": "C:\\MinGW\\bin\\"
}

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #11 : Октября 05, 2013, 16:18:18 »
я сделал вот так:
{
   "cmd": ["gcc", "${file}", "-o", "${file_path}/${file_base_name}"],
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${file_path}",
   "selector": "source.c",
   "shell": true,
   "path": "C:\\MinGW\\bin\\",
   "variants":
  [
    {
      "name": "Run",
      "cmd": ["gcc", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "${file_path}/${file_base_name}"],
      "shell": true
    }
  ]
}
и теперь при нажатии не Ctrl+Shift+b у меня выскакивает такое:

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #12 : Октября 05, 2013, 16:21:45 »
но мой файл не запускается...просто командная строка и всё

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #13 : Октября 05, 2013, 17:15:48 »
С настройками, вроде, все правильно.

Такой косяк получается, если в пути до файла есть пробелы.
« Последнее редактирование: Октября 05, 2013, 17:17:42 от Loac »

MADONZY

  • Jr. Member
  • **
  • Сообщений: 65
Re: Настройка Sublime Text 2 как компилтяра для C
« Ответ #14 : Октября 05, 2013, 18:25:25 »
С настройками, вроде, все правильно.

Такой косяк получается, если в пути до файла есть пробелы.
и что с этим делать?((