обычный С есть?

asel75

Коллеги,
требуется дистрибутив С (Turbo или еще какой)
для программирования на 1 - ом курсе мехмата.
Есть у кого-нибудь субж?
Прошу расшарить.

hashion

А что, великий и могучий КЮ Богачёв разрешил сдавать проги откомпилированные с помощью турбоси?

bleyman

Вижуальная студия компилит файлы с расширением .с как чистый С (не допуская плюсовых конструкций). Вот...

maggi14

Но в принципе есть, если надо. ТурбоСи2

tokuchu

gcc

asel75

У брата ведет Кумсков.
Ему вроде наплевать...
Но все же выложите - у меня только 16-разрядные версии,
которые не работают никак...

yolki

MS Visual C для этих целей подходит - главное научиться его запускать из коммандной строки.
И пользуешь редактор (я например, для этих целей пользую FAR) и запускаешь компилятор.
в классах это выглядит так:


$ vi a.c
[редактируем файл]
$ gcc a.c -o a.exe
$ ./a.exe
Hello!
$


под виндой (NT/2K/XP) это выглядит так (запускаем cmd, чтобы больше приблизиться к обстановке):


V:\work>far /e a.c
[редактируем файл]
V:\work> cl a.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
a.c
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:a.exe
a.obj
V:\work>a.exe
Hello!
v:\work>


типа способ, максимально приближающий обстановку в компьютерном классе

bleyman

О! Тогда я щаз скажу, что надо сделать, чтобы запустить cl из командной строки.
Потом это кто-нить может засунуть в фак, потому что я лично довольно долго ебался пока смог это сделать.
Переменные окружения под 2000/ХР/2003.
Конкретно в 2к3 существует страшная проблема с переменными окружения, например, PATH. PATH указывает пути, по которым ось ищет прогу, название которой вы набрали в командной строке. Например, хотите вы запустить M$ C++ Compiler, который называеццо cl. И вы бы хотели написАть просто cl myProgram.c в командной строке, а не указывать полный путь до того места, где лежит вижуальник. Тогда в переменную окружения PATH следует прописать этот самый путь, а винда сама тогда будет искать там cl.
В чем же проблема? А в том, что а) autoexec.bat НТ-евые винды не запускают а интерпретируют, причем, как выяснилось, довольно криво. И вообще это не тру. б) Любой файл с расширением .bat, который я запускал после загрузки винды, мог изменить ети самые переменные окружения только в своем личном контексте. Ну то есть для него они были изменены, а другие проги все равно получали старые.
Решение: Windows Scripting Host нам поможет! Делаем файлик setPath.wsf где-нить в корне диска Ц. Внутрь него пишем код:
<job id="Set Path">
<script language="JScript">
/* Writing system path */
var WshShell = WScript.CreateObject("WScript.Shell");
var WshSysEnv = WshShell.Environment("SYSTEM");
var pathtemp = "";
pathtemp = pathtemp + "c:\\progra~1\\winzip;c:\\progra~1\\winrar";
pathtemp = pathtemp + ";c:\\progra~1\\bp\\bin";
pathtemp = pathtemp + ";c:\\util;c:\\util\\arc;c:\\util\\me;C:\\Progra~1\\JavaSoft\\JRE\\1.2\\bin";
pathtemp = pathtemp + ";c:\\work\\keil\\C51\\bin;c:\\work\\keil\\c51";
pathtemp = pathtemp + ";%SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\system32\\WBEM";
pathtemp = pathtemp + ";C:\\PROGRA~1\\MICROS~1.NET\\COMMON7\\IDE;C:\\PROGRA~1\\MICROS~1.NET\\VC7\\BIN";
pathtemp = pathtemp + ";C:\\PROGRA~1\\MICROS~1.NET\\Common7\\Tools;C:\\PROGRA~1\\MICROS~1.NET\\Common7\\Tools\\bin\\prerelease";
pathtemp = pathtemp + ";C:\\PROGRA~1\\MICROS~1.NET\\Common7\\Tools\\bin";
pathtemp = pathtemp + ";C:\\WINDOWS\\Microsoft.NET\\Framework\\bin;C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322";
pathtemp = pathtemp + ";C:\\PROGRA~1\\MICROS~1.NET\\Vc7\\include";
WshSysEnv("PATH") = pathtemp;
var VCINSTALLDIR="C:\\Program Files\\Microsoft Visual Studio .NET 2003";
var MSVCDir= VCINSTALLDIR + "\\VC7";
var FrameworkSDKDir = "C:\\Program Files\\Microsoft Visual Studio .NET 2003\\SDK\\v1.1";
var include = MSVCDir + +MSVCDir+"\\INCLUDE;"
+ MSVCDir + + MSVCDir +
"\\PlatformSDK\\include;" + FrameworkSDKDir + "\\include";
var LIB= MSVCDir +
+ MSVCDir + "\\LIB;" + MSVCDir +
+ MSVCDir +
+ FrameworkSDKDir + "\\lib";
WshSysEnv("VCINSTALLDIR") = VCINSTALLDIR;
WshSysEnv("MSVCDir") = MSVCDir;
WshSysEnv("FrameworkSDKDir") = FrameworkSDKDir;
WshSysEnv("INCLUDE") = include;
//WScript.Echo(WshSysEnv("INCLUDE"
WshSysEnv("LIB") = LIB;
WshSysEnv("C51INC") = "c:\\work\\keil\\c51\\inc";
WshSysEnv("C51LIB") = "c:\\work\\keil\\c51\\lib";
// WScript.Echo(WshSysEnv("path";
// WScript.Echo("Path set");
</script>
</job>

Ну то есть не такой код пишем, конечно. Или такой, но потом стираем все ненужное. Ето типа написАно на клевом языке ЖаваСкрипт. Строчка WshSysEnv("INCLUDE") = include; присваивает переменной окружения под названием "INCLUDE" значение переменной скрипта include. Но можно и просто строчку присваивать WshSysEnv("C51LIB") = "c:\\work\\keil\\c51\\lib"; Если вы прописываете много путей, то они должны отделяться ';'. Два обратных слэша ставить надо, потому что обратный слэш - это типа особый символ, начало escape sequence, поэтому "\n", например, прописывает в строчку перевод строки. А "\\" прописывает в строчку обратный слэш =).
Короче, после того, как вы привели содержимое файлецца setPath.wsf в соответствие с собственными реалиями (кста, конкретно для настроек вижуальника следует вдохновляться файлом "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat" или где он у вас там ну так вот, после этого осталось сделать две вещи.
1) Правой кнопкой в My Computer, потом properties->advanced->environment variables. После чего ОЧЕНЬ! ОЧЕНЬ! осторожно и аккуратно стираем из user variables for ххх ТОЛЬКО ТЕ переменные окружения, которые мы решили ставить при помощи файлеца. Из систем вариаблез их тоже можно стереть на всякий случай, но они потом там опять появяццо - наш мега скрипт их именно туда прописывает.
2) Проставляем наш скриптец в Startup. Чиста на всякий случай.
3) Запускаем наш скриптец. Просто дву-кликом. Потом (обязательно потом) запускаем cmd, пишем там слово path и аккуратно проверяем, что там именно то, что нам нужно. Типа мы нигде не забыли бэкслеш и все такое. Потом пишем слово set и проверяем что во всех остальных переменных которые мы прописали ошибок нет. Пишем слово cl и проверяем, что компилятор нашелся.
4) Перезапускаем все проги чувствительные к переменным окружения (FAR, cmd).
5) Радуемся!

hashion

пипец просто, ужас-то какой...

evgen5555

Microsoft Visual Studio 2003 Command Prompt не пробовал запускать?

asel75

Але!
Я просил выложить C...

bleyman

А ты так и не сказал, чем тебя gcc не устраивает? Или Microsoft Visual Studio .NET?
2осет: ты о чем?

smnikiforov

>2осет: ты о чем?
приблизительный перевод: "заставь дурака Богу молиться..."

bobby

вот об этом, наверное:

bleyman

Ну типа у меня есть клевый плагин к фару. Называется MakeIt. Вызывает внешний компилятор по типу файла из едитора и умеет подсвечивать строку с ошибкой. Если мне нужно проверить какую-нить шняжку, то я пишу прогу в фаре.
Так вот, меня ломает запускать фар из той хуетенечки =)

dickofan

bc3.1 устроит?

bleyman

Он шестнадцатиразрядный.

stm6715764

А че, сразу ручкми слабо было переменные окружения подправить?

bleyman

Дык одно дело ручками, а другое дело - скриптом!

drive-svn

//продолжая офтоп
я когда сидел под фаром запускал не far.exe а far.bat, который все безобразие запускал с переменными окружения, а потом фар
отдельные переменные окружения позволяют больше свободы по использованию нескольких компиляторов под разные языки.
Оставить комментарий
Имя или ник:
Комментарий: