Страница 1 из 1

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

Добавлено: 21 сен 2015, 13:38
paolo64
Добрый день!

Задача:
Программа на С++ на 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 (ну - что-то типа такого...)

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 21 сен 2015, 16:39
Romeo
Если расширение поменять на "cpp", то это тоже решит проблему.

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

Добавлено: 21 сен 2015, 16:43
paolo64
Romeo писал(а):Если расширение поменять на "cpp", то это тоже решит проблему.

Оопс!

Точно... Только что проверил... Классно!!!

Как превратить потоковый вывод в строку?

Добавлено: 23 сен 2015, 10:10
paolo64
Добрый день!

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

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

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??

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