Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Ошибка компиляции


Автор: РомаБонд 23.7.2006, 10:14
изучаем в универе TurboC++(3.0).у меня на компе установлено 3 TurboC++ взятых из разных источников.ввожу программу текст которой ниже:
#include<stdio.h>
void main()
{
int i;
char s[30];
printf("введите строку");
scanf("%s",s);
for(i=0;s[i]!='\0';i++)
printf("длина=%d",i);
}
Результат в каждом из установленных С++ одинаков,везде выдаёт следующую ошибку:Unable to open file 'C0S.OBJ'.Директории у меня прописаны следующим образом:C:\TC\INCLUDE\ 
               C:\TC\LIB\CLASSLIB\
               C:\TC\LIB\
               C:\TC\RESEARCH.
ЧТО МНЕ ДЕЛАТЬ?????     
 smile  

Автор: ptr 23.7.2006, 11:32
1. А сам файл то существует?
2. Ты уверен, что всё правильно прописано?  

Автор: BreakPointMAN 23.7.2006, 11:46
Цитата(РомаБонд @  23.7.2006,  10:14 Найти цитируемый пост)
у меня на компе установлено 3 TurboC++ взятых из разных источников


Цитата(РомаБонд @  23.7.2006,  10:14 Найти цитируемый пост)
Директории у меня прописаны следующим образом:C:\TC\INCLUDE\ 
               C:\TC\LIB\CLASSLIB\
               C:\TC\LIB\
               C:\TC\RESEARCH.


Прости, ты хочешь сказать, что во всех трех у тебя так написано? А где на самом деле располагаются твои компиляторы и совпадают ли настройки путей хотя бы у одного их них с фактическими путями на жестком диске?
 

Автор: BreakPointMAN 23.7.2006, 12:09
Во-первых, нужно корректно установить (распаковать, скопировать) сам Turbo C++. Так, чтобы не было каши, чтобы не были свалены в одну папку файлы разного типа и назначения.

Во-вторых, нужно корректно прописать пути в настройках Turbo C++.
Это делается через меню Options|Directories.... В появившемся диалоговом окне должно быть 4 поля ввода:

Include Directories: здесь указывается путь к папке, в которой располагаются стандартные заголовочные файлы. Это файлы, которые подключаются директивой препроцессора #include, например, в твоей программе это файл "stdio.h. Кроме него в папке должно лежать много других *.h-файлов.

Library Directories: здесь указывается путь к папке, в которой располагаются объектные файлы со стартовым кодом (это файлы с расширением .obj, к которым,в том числе, относится и твой злополучный "c0s.obj") и run-time библиотеки *.lib.

Output Directory: это папка, в которую будут сохраняться *.obj, *.exe, *.map -файлы, полученные в результате компиляции и линковки.

Source Directories: это папка, в которой лежат файлы с исходным кодом твоей программы (это файлы *.h, *.cpp, *.c и т.д.)

В принципе, во всех полях ввода, кроме Output Directory, можно указывать не одну, а несколько папок, разделяя пути символом точки с запятой ;.

Все указанные пути должны быть фактическими, т.е. обязаны существовать на жестком диске, и по ним должны лежать файлы соответствующих типов.

Допустим, ты установил Turbo C++ в папку "C:\TC", в этой папке у тебя есть вложенные папки INCLUDE, LIB, OUTPUT и SOURCE, причем в них лежат файлы именно таких типов, как оговорено выше. Тогда ты прописываешь пути следующим образом:

Include Directories: C:\TC\INCLUDE
Library Directories: C:\TC\LIB
Output Directory: C:\TC\OUTPUT
Source Directories: C:\TC\SOURCE

Последние две папки я люблю совмещать в одну "C:\TC\WORK".

Добавлено @ 12:13 
Кстати, иногда программы ругаются на невозможность найти или открыть файл, если у него стоят атрибуты "скрытый" или "системный", попробуй снять эти атрибуты у всех файлов.

Добавлено @ 12:17 
ЗЫЖ по поводу того, что у тебя имеется ошибка в программе (не поставлена точка с запятой) я тебе уже говорил на другом форуме. 

Автор: РомаБонд 23.7.2006, 12:41
Спасибо за подробную инструкцию.
 

Автор: РомаБонд 24.7.2006, 12:55
Согласнотвоим рекомендациям прописал в Include Directories все пути к папкам в которых только смог найти .h файлы: C:\С+\TC\INCLUDE;C:\C+\TC\EXAMPLES;C:\C+\TC\INCLUDE\SYS;C:\C+\TC\CLASSLIB\INCLUDE

В Library Directories все пути к файлам obj и lib:C:\C+\TC\CLASSLIB\LIB;C:\C+\TC\LIB

В Output Directory : C:\С+\TC\OUTPUT

В Source Directories:C:\C+\TC\SOURCE(причём папок SOURCE две-одна в C:\C+\TC\,а другая в C:\C+\TC\CLASSLIB,прописал только первую.) 


РЕЗУЛЬТАТ:UNABLE TO OPEN FILE 'C0S.OBJ'
атрибутов "скрытый" или "системный" в свойствах этого файла нет. 

Автор: dumb 24.7.2006, 13:08
попробуй переставить TC еще разок, только на этот раз не надо ставить "+" в имени папки - сделай, как тебе советовали: "C:\TC" 

Автор: РомаБонд 24.7.2006, 13:51
У меня несколько С++ (скачанные и сдиска) , что бы их не путать , они лежат в папках с разными именами , тот  в котором выполнялись "прописки" , лежит в папке "С+ "  

Автор: BreakPointMAN 24.7.2006, 19:47
Не все программы хорошо переносят русские буквы, пробелы и специальные символы в именах файлов и путях. Чтобы быть наверняка уверенным, что проблема не в этом, используй только символы латиницы. Кстати, общепринятое сокращение "C++" - "cpp". smile Так можешь назвать и свою папку... 

Автор: РомаБонд 25.7.2006, 09:56
установил TURBO C++ ещё раз с диска - всё работает,но не понятно почему не работали скачанные с инета программы?????!!Всем кто помогал -большое спасибо! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)