Why when I wan to compile the following multi thread merge sorting C program, I receive this error:
ap@sharifvm:~/forTHE04a$ gcc -g -Wall -o mer mer.c -lpthread
mer.c:4:20: fatal error: iostream: No such file or directory
#include <iostream>
^
compilation terminated.
ap@sharifvm:~/forTHE04a$ gcc -g -Wall -o mer mer.c -lpthread
mer.c:4:22: fatal error: iostream.h: No such file or directory
#include <iostream.h>
^
compilation terminated.
My program:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <iostream>
using namespace std;
#define N 2 /* # of thread */
int a[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; /* target array */
/* structure for array index
* used to keep low/high end of sub arrays
*/
typedef struct Arr {
int low;
int high;
} ArrayIndex;
void merge(int low, int high)
{
int mid = (low+high)/2;
int left = low;
int right = mid+1;
int b[high-low+1];
int i, cur = 0;
while(left <= mid && right <= high) {
if (a[left] > a[right])
b[cur++] = a[right++];
else
b[cur++] = a[right++];
}
while(left <= mid) b[cur++] = a[left++];
while(right <= high) b[cur++] = a[left++];
for (i = 0; i < (high-low+1) ; i++) a[low+i] = b[i];
}
void * mergesort(void *a)
{
ArrayIndex *pa = (ArrayIndex *)a;
int mid = (pa->low + pa->high)/2;
ArrayIndex aIndex[N];
pthread_t thread[N];
aIndex[0].low = pa->low;
aIndex[0].high = mid;
aIndex[1].low = mid+1;
aIndex[1].high = pa->high;
if (pa->low >= pa->high) return 0;
int i;
for(i = 0; i < N; i++) pthread_create(&thread[i], NULL, mergesort, &aIndex[i]);
for(i = 0; i < N; i++) pthread_join(thread[i], NULL);
merge(pa->low, pa->high);
//pthread_exit(NULL);
return 0;
}
int main()
{
ArrayIndex ai;
ai.low = 0;
ai.high = sizeof(a)/sizeof(a[0])-1;
pthread_t thread;
pthread_create(&thread, NULL, mergesort, &ai);
pthread_join(thread, NULL);
int i;
for (i = 0; i < 10; i++) printf ("%d ", a[i]);
cout << endl;
return 0;
}
|
0 / 0 / 1 Регистрация: 05.06.2010 Сообщений: 17 |
|
|
1 |
|
|
01.03.2012, 02:39. Показов 19055. Ответов 19
Доброе время суток.
__________________
0 |
|
Почетный модератор 7388 / 2634 / 281 Регистрация: 29.07.2006 Сообщений: 13,696 |
|
|
01.03.2012, 02:44 |
2 |
|
AntiDriver, а в путях инклуда, в которых компилер ищет, есть вообще такая либа? Командой g++ компилишь? Добавлено через 1 минуту
Но при попытке откомпилировать программу на си со сточкой #include <iostream.h> постой, нафига тебе на си иострим? Это плюсы. Руками компилируй, хватит среды насиловать.
0 |
|
бжни 2473 / 1684 / 135 Регистрация: 14.05.2009 Сообщений: 7,162 |
|
|
01.03.2012, 03:13 |
3 |
|
в си нету, не было и не будет iostream
0 |
|
0 / 0 / 1 Регистрация: 05.06.2010 Сообщений: 17 |
|
|
01.03.2012, 13:39 [ТС] |
4 |
|
Я же уже говорил, что знаю только паскаль, в си по нулям, скачал несколько книжек, там приводятся примеры кода с этим iostream
0 |
|
Почетный модератор 7388 / 2634 / 281 Регистрация: 29.07.2006 Сообщений: 13,696 |
|
|
01.03.2012, 13:47 |
5 |
|
в си по нулям, скачал несколько книжек, там приводятся примеры кода с этим iostream Тебе уже сказали, что это не си, а плюсы.
0 |
|
fasked
5038 / 2617 / 241 Регистрация: 07.10.2009 Сообщений: 4,310 Записей в блоге: 1 |
||||
|
01.03.2012, 16:03 |
6 |
|||
|
#include <iostream.h> и даже если на C++, то все равно неправильно.
0 |
|
21264 / 8280 / 637 Регистрация: 30.03.2009 Сообщений: 22,635 Записей в блоге: 30 |
|
|
01.03.2012, 18:26 |
7 |
|
скачал несколько книжек, там приводятся примеры кода с этим iostream Скорее всего ты невнимательно прочитал название книги, и книга была по Си++, а не по Си. Но если книга была по Си, то смело выбрасывай её в помойку
0 |
|
0 / 0 / 1 Регистрация: 05.06.2010 Сообщений: 17 |
|
|
01.03.2012, 21:34 [ТС] |
8 |
|
Уже терпение лопается. Все книжки, которые скачиваю, даже по си без плюсов, там этот iostream. Подскажите какую-нибудь где его нет, пожалуйста.
0 |
|
21264 / 8280 / 637 Регистрация: 30.03.2009 Сообщений: 22,635 Записей в блоге: 30 |
|
|
01.03.2012, 21:54 |
9 |
|
0 |
|
3211 / 1459 / 73 Регистрация: 09.08.2009 Сообщений: 3,441 Записей в блоге: 2 |
|
|
01.03.2012, 22:35 |
10 |
|
даже по си без плюсов, там этот iostream можно пример?
0 |
|
0 / 0 / 1 Регистрация: 05.06.2010 Сообщений: 17 |
|
|
01.03.2012, 22:45 [ТС] |
11 |
|
Удалил уже эту книжку, к сожалению. Хорошо, а как тогда заставить компиляторы с++ в linux видеть этот iostream? Сколько уже сред не ставил, везде одна и та же фигня, не видят. Иначе придётся писать программы под виртуалкой и только для винды. А для собственных нужд как и раньше на паскале.
0 |
|
21264 / 8280 / 637 Регистрация: 30.03.2009 Сообщений: 22,635 Записей в блоге: 30 |
|
|
01.03.2012, 23:14 |
12 |
|
Надо установить компилятор g++ (и его же запускать)
0 |
|
Почетный модератор 7388 / 2634 / 281 Регистрация: 29.07.2006 Сообщений: 13,696 |
|
|
02.03.2012, 02:11 |
13 |
|
Сколько уже сред не ставил, везде одна и та же фигня, не видят А ты не среду ставь, запускай компилятор напрямую и компилируй.
0 |
|
0 / 0 / 1 Регистрация: 05.06.2010 Сообщений: 17 |
|
|
02.03.2012, 23:25 [ТС] |
14 |
|
Так в том то и дело что g++ (и даже gcc) установлены. Код yegor@t9ttt97t:~/Рабочий стол$ cat 1.cpp
#include <iostream.h>
void main();
{
}
yegor@t9ttt97t:~/Рабочий стол$ gcc 1.cpp
1.cpp:1:22: error: iostream.h: Нет такого файла или каталога
0 |
|
3211 / 1459 / 73 Регистрация: 09.08.2009 Сообщений: 3,441 Записей в блоге: 2 |
|
|
02.03.2012, 23:41 |
15 |
|
iostream.h тебе уже говорили, у этого файла нет расширения. только имя. к тому же, две ошибки в одной строке:
void main();
0 |
|
21264 / 8280 / 637 Регистрация: 30.03.2009 Сообщений: 22,635 Записей в блоге: 30 |
|
|
03.03.2012, 00:18 |
16 |
|
Тогда надо установить пакет с названием что-то типа c++devel Добавлено через 14 секунд Добавлено через 4 минуты Добавлено через 1 минуту
0 |
|
0 / 0 / 1 Регистрация: 05.06.2010 Сообщений: 17 |
|
|
03.03.2012, 01:34 [ТС] |
17 |
|
Эти пакеты уже установлены.
0 |
|
3211 / 1459 / 73 Регистрация: 09.08.2009 Сообщений: 3,441 Записей в блоге: 2 |
|
|
03.03.2012, 02:52 |
18 |
|
ты ошибки в своей мегапрограмме исправил?
0 |
|
Почетный модератор 7388 / 2634 / 281 Регистрация: 29.07.2006 Сообщений: 13,696 |
|
|
03.03.2012, 11:40 |
19 |
|
AntiDriver, $ cat > main.cpp
0 |
|
0 / 0 / 1 Регистрация: 05.06.2010 Сообщений: 17 |
|
|
04.03.2012, 17:53 [ТС] |
20 |
|
Да, исправил всё, всё откомпилировалось. Один пакет из зависимостей почему-то не был установлен. Всем спасибо за ответы!
0 |
Possible Duplicate:
No such file iostream.h when including
Even after naming the source file with .cpp extension. my compiler gives this error, both in command prompt and Codeblocks. How can I fix this issue?
#include <iostream.h>
int main(){
cout<<"Hello World!n";
return 0;
}
asked Oct 24, 2012 at 13:12
1
That header doesn’t exist in standard C++. It was part of some pre-1990s compilers, but it is certainly not part of C++.
Use #include <iostream> instead. And all the library classes are in the std:: namespace, for example std::cout.
Also, throw away any book or notes that mention the thing you said.
Puppy
143k36 gold badges252 silver badges457 bronze badges
answered Oct 24, 2012 at 13:14
Kerrek SBKerrek SB
457k91 gold badges866 silver badges1073 bronze badges
3
Using standard C++ calling (note that you should use namespace std for cout or add using namespace std;)
#include <iostream>
int main()
{
std::cout<<"Hello World!n";
return 0;
}
![]()
paxdiablo
837k230 gold badges1560 silver badges1928 bronze badges
answered Oct 24, 2012 at 13:14
il_guruil_guru
8,2732 gold badges43 silver badges51 bronze badges
1
You should be using iostream without the .h.
Early implementations used the .h variants but the standard mandates the more modern style.
answered Oct 24, 2012 at 13:14
![]()
paxdiablopaxdiablo
837k230 gold badges1560 silver badges1928 bronze badges
Possible Duplicate:
No such file iostream.h when including
Even after naming the source file with .cpp extension. my compiler gives this error, both in command prompt and Codeblocks. How can I fix this issue?
#include <iostream.h>
int main(){
cout<<"Hello World!n";
return 0;
}
asked Oct 24, 2012 at 13:12
1
That header doesn’t exist in standard C++. It was part of some pre-1990s compilers, but it is certainly not part of C++.
Use #include <iostream> instead. And all the library classes are in the std:: namespace, for example std::cout.
Also, throw away any book or notes that mention the thing you said.
Puppy
143k36 gold badges252 silver badges457 bronze badges
answered Oct 24, 2012 at 13:14
Kerrek SBKerrek SB
457k91 gold badges866 silver badges1073 bronze badges
3
Using standard C++ calling (note that you should use namespace std for cout or add using namespace std;)
#include <iostream>
int main()
{
std::cout<<"Hello World!n";
return 0;
}
![]()
paxdiablo
837k230 gold badges1560 silver badges1928 bronze badges
answered Oct 24, 2012 at 13:14
il_guruil_guru
8,2732 gold badges43 silver badges51 bronze badges
1
You should be using iostream without the .h.
Early implementations used the .h variants but the standard mandates the more modern style.
answered Oct 24, 2012 at 13:14
![]()
paxdiablopaxdiablo
837k230 gold badges1560 silver badges1928 bronze badges
Всем доброго времени суток.Итак, проблема наболевшая, перерыл гуглю, ответов множество.Все эти решения принимались мной в расчёт, но увы.Помогите, пожалуйста, разобраться.Очень прошу меня услышать.
Итак, есть первая программа, типа Hello world :
#include <iostream>
using namespace std;
main ()
{
cout << "Добро пожаловать в C++!n";
return 0;
}
До указания пространства имён идентификаторов std, писало :
fatal error: iostream: Нет такого файла или каталога
Указавши его, происходит вот такая ошибка:
alexandr@Alexandr:~$ cc welcom.cpp
/tmp/cclfxBtN.o: In function `main':
welcom.cpp:(.text+0x14): undefined reference to `std::cout'
welcom.cpp:(.text+0x19): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/cclfxBtN.o: In function `__static_initialization_and_destruction_0(int, int)':
welcom.cpp:(.text+0x41): undefined reference to `std::ios_base::Init::Init()'
welcom.cpp:(.text+0x46): undefined reference to `std::ios_base::Init::~Init()'
/tmp/cclfxBtN.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
Вы, сейчас сожете сказать, что не подключены библиотеки для iostream, логично, но и здесь я перерыл свой Синаптик.Какие махинации я только не совершал, что только не пытался включить/отключить.Честно говоря, я уже сам толком не знаю должны ли быть включены те или иные библиотеки, но метод тыка результата не дал.
Ах да, sudo apt-get install build-essential, этот этап производился.
При команде:
alexandr@Alexandr:~$ aptitude search iostreamвыдаёт информацию такого рода, может это на что-то укажет, уж я не знаю.
i libboost-iostreams-dev - Boost.Iostreams Library development files
p libboost-iostreams1.40-dev - Boost.Iostreams Library development files
c libboost-iostreams1.40.0 - Boost.Iostreams Library
i libboost-iostreams1.42-dev - Boost.Iostreams Library development files
i A libboost-iostreams1.42.0 - Boost.Iostreams Library
Вопросы, естественно, по существу :как с этим бороться ?Чего не хватает мне, подскажите ?
И ещё вопрос, возможно ли полностью отключить/удалить компилятор и настроить его заново, если да, каким образом ?
Почему, когда я хочу скомпилировать следующую многопоточную программу сортировки слиянием, я получаю эту ошибку:
ap@sharifvm:~/forTHE04a$ gcc -g -Wall -o mer mer.c -lpthread
mer.c:4:20: fatal error: iostream: No such file or directory
#include <iostream>
^
compilation terminated.
ap@sharifvm:~/forTHE04a$ gcc -g -Wall -o mer mer.c -lpthread
mer.c:4:22: fatal error: iostream.h: No such file or directory
#include <iostream.h>
^
compilation terminated.
Моя программа:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <iostream>
using namespace std;
#define N 2 /* # of thread */
int a[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; /* target array */
/* structure for array index
* used to keep low/high end of sub arrays
*/
typedef struct Arr {
int low;
int high;
} ArrayIndex;
void merge(int low, int high)
{
int mid = (low+high)/2;
int left = low;
int right = mid+1;
int b[high-low+1];
int i, cur = 0;
while(left <= mid && right <= high) {
if (a[left] > a[right])
b[cur++] = a[right++];
else
b[cur++] = a[right++];
}
while(left <= mid) b[cur++] = a[left++];
while(right <= high) b[cur++] = a[left++];
for (i = 0; i < (high-low+1) ; i++) a[low+i] = b[i];
}
void * mergesort(void *a)
{
ArrayIndex *pa = (ArrayIndex *)a;
int mid = (pa->low + pa->high)/2;
ArrayIndex aIndex[N];
pthread_t thread[N];
aIndex[0].low = pa->low;
aIndex[0].high = mid;
aIndex[1].low = mid+1;
aIndex[1].high = pa->high;
if (pa->low >= pa->high) return 0;
int i;
for(i = 0; i < N; i++) pthread_create(&thread[i], NULL, mergesort, &aIndex[i]);
for(i = 0; i < N; i++) pthread_join(thread[i], NULL);
merge(pa->low, pa->high);
//pthread_exit(NULL);
return 0;
}
int main()
{
ArrayIndex ai;
ai.low = 0;
ai.high = sizeof(a)/sizeof(a[0])-1;
pthread_t thread;
pthread_create(&thread, NULL, mergesort, &ai);
pthread_join(thread, NULL);
int i;
for (i = 0; i < 10; i++) printf ("%d ", a[i]);
cout << endl;
return 0;
}
5
Решение
ни <iostream> ни <iostream.h> являются стандартными заголовочными файлами C. Ваш код предназначен для C ++, где <iostream> является действительным заголовком. использование g++ (и .cpp расширение файла) для кода C ++.
Кроме того, эта программа использует в основном конструкции, которые в любом случае доступны в Си. Достаточно просто преобразовать всю программу для компиляции с использованием компилятора Си. Просто удалить #include <iostream> а также using namespace std;и заменить cout << endl; с putchar('n');… советую компилировать с использованием C99 (например. gcc -std=c99)
24
Другие решения
Похоже, вы опубликовали новый вопрос после того, как поняли, что имеете дело с более простой проблемой, связанной с size_t, Я рад, что ты это сделал.
В любом случае, у вас есть .c исходный файл, и большая часть кода выглядит в соответствии со стандартами C, за исключением того, что #include <iostream> а также using namespace std;
C эквивалент для встроенных функций стандарта C ++ #include<iostream> можно получить через #include<stdio.h>
- замещать
#include <iostream>с#include <stdio.h>, удалятьusing namespace std; -
С
#include <iostream>снял, вам понадобится стандартная альтернатива С дляcout << endl;что может быть сделаноprintf("n");или жеputchar('n');
Из двух вариантов,printf("n");работает быстрее, как я заметил.Когда используется
printf("n");в приведенном выше коде вместоcout<<endl;$ time ./thread.exe 1 2 3 4 5 6 7 8 9 10 real 0m0.031s user 0m0.030s sys 0m0.030sКогда используется
putchar('n');в приведенном выше коде вместоcout<<endl;$ time ./thread.exe 1 2 3 4 5 6 7 8 9 10 real 0m0.047s user 0m0.030s sys 0m0.030s
Скомпилировано с Cygwin gcc (GCC) 4.8.3 версия. результаты усреднены по 10 выборкам. (Заняло у меня 15 минут)
4
Содержание
- Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- Re: Hello World не компилируеться в g++
- iostream.h: Нет такого файла или каталога (гугл не помог)
- Gentoo, Qt-creator не видит iostream
- iostream: нет такого файла или каталога
- Решение
- Другие решения
- Iostream: нет такого файла или каталога
Hello World не компилируеться в g++
Подскажите куда копать, вроде все верно.


Re: Hello World не компилируеться в g++
>> Подскажите куда копать, вроде все верно.
Судя по всему g++ не может найти свои же стандартные включаемые файлы. Проверь что они установлены.

Re: Hello World не компилируеться в g++
Возможно что эти файлы просто в каком-то отдельном пакете. Попробуй поискать что-то типа libstdc++-devel (зависит от дистрибутива).

Re: Hello World не компилируеться в g++
файл звется iostream.h, а не iostream

Re: Hello World не компилируеться в g++

Re: Hello World не компилируеться в g++
sudo aptitude install build-essential
Re: Hello World не компилируеться в g++
Вылезай из анабиоза, файл зоввётся iostreams (а не iostream, и не iostream.h)
Re: Hello World не компилируеться в g++
iostream.h он был в мохнатые годы
Re: Hello World не компилируеться в g++
какой такой iostreams? Мб ios?

Re: Hello World не компилируеться в g++
Хы, файл называется c++/4.2/iostream 🙂
PS у меня пример компилируется и выполняется, значит не хватает devel-пакета для gcc. Тока там перевода каретки не хватает.

Re: Hello World не компилируеться в g++

Re: Hello World не компилируеться в g++
Проблема решена, незаметил команду g++-gcc-4.2.4, а она помогла в итоге. Всем спасибо.

Re: Hello World не компилируеться в g++
> Вылезай из анабиоза, файл зоввётся iostreams (а не iostream, и не iostream.h)
Мля, набежало школьников, убейтесь. Файл называется
Источник
iostream.h: Нет такого файла или каталога (гугл не помог)
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Conio.h: Нет такого файла или каталога
#include #include // Упр3.cpp:3:19: fatal error: conio.h: Нет такого файла.
G++: error: std=c++11: Нет такого файла или каталога
Всем доброго времени суток. Только несколько минут назад я столкнулся с таким случаем: при.
AntiDriver, а в путях инклуда, в которых компилер ищет, есть вообще такая либа? Командой g++ компилишь?
Добавлено через 1 минуту
тебе уже говорили, у этого файла нет расширения. только имя.
к тому же, две ошибки в одной строке:
Тогда надо установить пакет с названием что-то типа c++devel
Добавлено через 14 секунд
Или g++devel, или libstdc++
Добавлено через 4 минуты
Кстати, g++ точно установлен? А то ты показал, что gcc запускаешь
Добавлено через 1 минуту
Нашёл. У меня установлены пакеты libstdc++, libstdc++-6-4.4-dev
Работа dlopen. dlerror выдает, что нет такого каталога или файла
Почему не работает dlopen: пишу простой пример с загрузкой void * Lib = dlopen («libqmng.so».
Нет такого файла или каталога
Написал скрипт, который проверяет раз в 10 минут активный ли сервер, и если активный запускает.
Источник
Gentoo, Qt-creator не видит iostream
Хотя, возможно, и не только он, но больше ничего кододополняющего нет.
#include подчеркивается зеленым и выводит сообщение: iostream: no such file or directory. Соответственно, и функции из std:: не дополняются, хотя всё нормально компилируется. Не смертельно, но неприятно. С удивлением обнаружил, что в системе действительно нет никакого iostream.h(по крайней мере, в /usr/include)
С чем такое м.б. связано? По форумам полазил, один из подобных вопросов заглох на том, что автору посоветовали пересобрать gcc. Сейчас тоже попробую



У меня всё работает.

У меня этот файл называется просто iostream, без расширения. Убунта.

/usr/include/c++/4.6.0/iostream // Fedora 15

ЕМНИП, там надо добавить путь в *.pro

Ага, нашел: /usr/lib64/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/iostream
Непонятно, почему так. А еще find`ом нашел /var/tmp/portage/sys-devel/gcc-4.5.2/work/gcc-4.5.2/libstdc++-v3/include/std/iostream, т.ч., похоже, не зря пересобирать поставил.
Правда, большая часть всё равно не дополняется, но хотя бы не ругается

iostream и прочие инклудники из std не имеют расширения и лежат где-то в /usr/lib/gcc*/4.x.x/include

Библиотека C++ реализуется разработчиком компилятора.
Источник
iostream: нет такого файла или каталога
Я работаю с Qt Creator на Windows Vista. Я пытаюсь скомпилировать очень простой код «.cpp», который включает в себя стандартную библиотеку c ++ «iostream», например:
проблема возникает еще до компиляции кода, она возникает, когда Qt выделяет библиотеку и подтверждает это (iostream: такого файла или каталога нет).
Он работал нормально пару дней назад, затем я установил VS-Express-2012, который затем удалил, потому что, что удивительно, он не работает с Windows Vista. сразу после удаления VS-2012 библиотеки c ++ больше не видятся создателем Qt.
.. однако, когда я создаю новый файл «.cpp» в совершенно новом проекте, библиотеки исчезают и отсутствует ссылка: 
.. (Я не хочу привыкать к переустановке Qt каждый раз, когда у меня возникает похожая проблема с компилятором, я хотел бы понять, почему это происходит в первую очередь)
Итак, что именно ищет Qt (или где я должен искать?), спасибо
Решение
Сначала откройте в Qt Creator файл вашего проекта («.pro») и добавьте следующую строку:
Тогда попробуйте использовать #include в вашем коде
Для меня ВКЛЮЧЕНО /usr/include/c++/4.7.3/
Другие решения
Вам не нужно переустанавливать создателя Qt. Если вы хотите использовать его для запуска исходного кода C ++, вам сначала нужно создать файл проекта. Сделайте следующее:
Источник
Iostream: нет такого файла или каталога
проблема возникает даже перед компиляцией кода, она возникает, когда Qt выделяет библиотеку и признает, что (iostream: нет такого файла или каталога).
Он работал отлично пару дней назад, затем я установил VS-Express-2012, который затем был удален, потому что, что удивительно, он не работает с Windows Vista. сразу после удаления VS-2012, С++-библиотеки больше не видны разработчику Qt.
Заметьте, что я все еще могу скомпилировать и запустить мои предыдущие написанные коды с помощью командной строки, что означает, что библиотеки С++ не были удалены с удалением VS-2012. Кроме того, все мои предыдущие коды (в старых проектах, которые были созданы с использованием того же Qt) не имеют такой проблемы (то есть: Qt идентифицирует и видит стандартные библиотеки), и я все еще могу их компилировать и запускать с помощью создателя Qt, даже если Я создаю новый файл «.cpp» в этих старых проектах:
.. однако, когда я создаю новый файл «.cpp» в совершенно новом проекте, библиотеки исчезают и ссылка отсутствует:
.. (Я не хочу привыкать к повторной установке Qt каждый раз, когда у меня есть аналогичная проблема с компилятором, я хотел бы понять, почему это происходит в первую очередь)
Итак, что именно ищет Qt (или где я должен смотреть?), спасибо
Источник
- Forum
- Beginners
- fatal error: IOStream: No such file or d
fatal error: IOStream: No such file or directory
I know this is a topic well discussed, but I have looked through this and other forums, but others mistakenly use .h. I am running Ubuntu with G++ 4.5.2.
My code:
#include <iostream>
using namespace std;
int main()
{
cout << «Hello world.» << endl;
return -1;
}
I compile with:
G++ HelloWorld.cpp
My error is:
HelloWorld.cpp:1:20: fatal error: IOStream: No such file or directory
compilation terminated.
I can compile fine with both geany and eclipse IDE, but I am practicing with programming with terminal. Since it compiles with the IDE, I am leaning toward g++ and libraries being installed correctly. I have the iostream file in /usr/include/c++/4.5/iostream directory.
I would appreciate any help because I have struggling with this for a couple of days now.
Hi scratch509 I gust go throughout the code and I want to explain something:
In the main function when u return it u return 0 which is an interger that means return nothing.
If u return -1 in any function that means that u are logically that thear is an error.
I hope that u understand .
| ARWA wrote: |
|---|
| In the main function when u return it u return 0 which is an interger that means return nothing. |
You couldn’t be anymore wrong.
void
means you return nothing. When he/she returns
-1
, he/she returns
-1
, not
0
.
| ARWA wrote: |
|---|
| If u return -1 in any function that means that u are logically that thear is an error. |
What if I had a method that returned
-1
on a successful call? It may not be common to return
-1
on a successful method call, but never assume such things; everybody’s coding style is different.
Scratch, a glance at your code reveals no apparent errors. However, considering you’re on Ubuntu, installation is different than Windows. It would be beneficial to post this question in the Unix/Linux section of this forum.
Wazzak
Last edited on
You might have a problem with case sensitivity.
The header is called iostream, not IOStream. Likewise, the compiler is called g++, not G++.
Thanks everyone for the replies. I figured out my issue here. I don’t even want to admit it, but it does help if you compile the same file you are editing. I did take the uppercase and the -1 comment onboard though and will remember it.
I have a nearly similar issue on my MacOSX computer, but there it doesn’t even compile with an IDE. That is my next thing to figure out.
You guys are awesome.
Topic archived. No new replies allowed.
Я работаю с Qt Creator on Виндоус виста. Я пытаюсь скомпилировать очень простой код «.cpp», который включает стандартную библиотеку С++ «iostream», например:
#include <iostream>
using namespace std;
int main(){
cout << "thanks";
return 0;
}
Проблема возникает еще до компиляции кода. Это происходит, когда Qt выделяет библиотеку и подтверждает, что (iostream: нет такого файла или каталога).
Пару дней назад все работало нормально, но потом я установил Visual Studio 2012 Экспресс который я затем удалил, потому что, как ни странно, он не работает с Windows Vista. Сразу после удаления Visual Studio 2012 библиотеки C++ больше не видны Qt Creator.
Обратите внимание, что я по-прежнему могу компилировать и запускать ранее написанный код с помощью консоли командной строки, что означает, что библиотеки C++ не были удалены с удалением Visual Studio 2012! Кроме того, весь мой предыдущий код (в старых проектах, созданных с использованием того же Qt) не имеет такой проблемы (т. е. Qt идентифицирует и видит стандартные библиотеки), и я все еще могу нормально компилировать и запускать их с помощью Qt Creator, даже когда Я создаю новый файл «.cpp» в этих старых проектах:

Однако, когда я создаю новый файл «.cpp» в совершенно новом проекте, библиотеки исчезают, а ссылка отсутствует:

(Я не хочу привыкать переустанавливать Qt каждый раз, когда у меня возникает подобная проблема с компилятором, я хотел бы понять, почему это происходит в первую очередь.)
Итак, что именно ищет Qt (или где я должен искать)?

