<iostream> - ошибка компилятора GCC?

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
paolo64
Сообщения: 30
Зарегистрирован: 21 сен 2015, 13:30

Добрый день!

Задача:
Программа на С++ на Linux (SentOS6).
Включил хеадер:
#include <iostream>
в программе с MySQL connector...

При компиляции пишет:

Makefile
Makefile:
---
CC=gcc

test: test.o
$(CC) -o ../cgi-bin/test -I/usr/includ/cppconn -L/usr/lib test.o -lm -lmysqlcppconn -lz
---

error - iostream: File not found (ну - что-то типа такого...)

Срочно нужна подсказка, как это исправить!!!

С уважением,
Павел.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Во-первых, делаю предположение, что правильным будет /usr/include/cppconn. Но это не имеет прямого отношения к ошибке.

Во-вторых, из приведённого куска makefile не видно, какое расширение у файла test. Дело в том, что gcc по умолчанию делает C компиляцию для файлов с расширением "с" и С++ компиляцию для файлов с расширением "cpp". Таким образом в "c" файле #include <iostream> не отработает.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
paolo64
Сообщения: 30
Зарегистрирован: 21 сен 2015, 13:30

Romeo писал(а):Во-первых, делаю предположение, что правильным будет /usr/include/cppconn. Но это не имеет прямого отношения к ошибке.

Во-вторых, из приведённого куска makefile не видно, какое расширение у файла test. Дело в том, что gcc по умолчанию делает C компиляцию для файлов с расширением "с" и С++ компиляцию для файлов с расширением "cpp". Таким образом в "c" файле #include <iostream> не отработает.

Расширение ".с"
А проблема была не в этом. После установки "g++", проблема отпала...

Спасибо за ответ.

С уважением,
Павел.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Если расширение поменять на "cpp", то это тоже решит проблему.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
paolo64
Сообщения: 30
Зарегистрирован: 21 сен 2015, 13:30

Romeo писал(а):Если расширение поменять на "cpp", то это тоже решит проблему.

Оопс!

Точно... Только что проверил... Классно!!!
paolo64
Сообщения: 30
Зарегистрирован: 21 сен 2015, 13:30

Добрый день!

Опять проблема с потоковым выводом...

Код: Выделить всё

res = stmt->executeQuery("SELECT id, label FROM test ORDER BY id ASC");
while (res->next()) {
  // You can use either numeric offsets...
  cout << "id = " << res->getInt(1); // getInt(1) returns the first column
  // ... or column names for accessing results.
  // The latter is recommended.
  cout << ", label = '" << res->getString("label"); << "'" << endl;
}
Как можно превратить res->getString("label"); в обычную строку char??

С уважением,
Павел.
Ответить