Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ругается при компиляции на Linuxе... / 5 сообщений из 5, страница 1 из 1
15.03.2006, 18:15
    #33603363
d2e8k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается при компиляции на Linuxе...
Добрый день!
Не разберусь с компиляцией на Linux (AltLinux 2.3), на FreeBSD такое компилируется без проблем. Вот такой файлик:
#include <string>
#include <iostream>

using std::cout;
using std::endl;
main () {
string str;

str = string ("any string");
cout << str << endl;
}

И вот такие сообщения после выполнения g++ -o file file.cc:
In file included from /usr/include/bits/posix1_lim.h:126,
from /usr/include/limits.h:144,
from /usr/lib/gcc-lib/i586-alt-linux/3.2.3/include/limits.h:132,
from /usr/lib/gcc-lib/i586-alt-linux/3.2.3/include/syslimits.h:7,
from /usr/lib/gcc-lib/i586-alt-linux/3.2.3/include/limits.h:11,
from /usr/include/c++/3.2.3/climits:49,
from /usr/include/c++/3.2.3/bits/stl_algobase.h:66,
from /usr/include/c++/3.2.3/memory:54,
from /usr/include/c++/3.2.3/string:48,
from simpleStr.cc:1:
/usr/include/bits/local_lim.h:36:26: linux/limits.h: No such file or directory
In file included from /usr/include/errno.h:36,
from /usr/include/c++/3.2.3/cerrno:48,
from /usr/include/c++/3.2.3/bits/locale_facets.tcc:38,
from /usr/include/c++/3.2.3/locale:46,
from /usr/include/c++/3.2.3/bits/ostream.tcc:37,
from /usr/include/c++/3.2.3/ostream:275,
from /usr/include/c++/3.2.3/iostream:45,
from simpleStr.cc:2:
/usr/include/bits/errno.h:25:26: linux/errno.h: No such file or directory
simpleStr.cc: In function `int main()':
simpleStr.cc:7: `string' undeclared (first use this function)
simpleStr.cc:7: (Each undeclared identifier is reported only once for each function it appears in.)
simpleStr.cc:7: syntax error before `;' token
simpleStr.cc:9: `str' undeclared (first use this function)

В /usr/include/c++/3.2.3/ файл string имеется .
Подобные проблемы бывают при использовании iostream: если указать #include <iostream>, он ругается. Если указать -I/usr/include/c++/3.2.3/backward и #include <iostream.h>, тогда компилируется, но предупреждает про "deprecated...".
Буду благодарен, тем кто подскажет, что я делаю не так.
...
Рейтинг: 0 / 0
15.03.2006, 18:34
    #33603415
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается при компиляции на Linuxе...
using namespace std вроде нужно
...
Рейтинг: 0 / 0
17.03.2006, 01:44
    #33606853
a_shar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается при компиляции на Linuxе...
думаю будет достаточно
Код: plaintext
1.
using std::string;
...
Рейтинг: 0 / 0
17.03.2006, 02:46
    #33606868
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается при компиляции на Linuxе...
Исследовал ситуацию.

FreeBSD 4.10 gcc 2.95.4 компилируется.
FreeBSD 5.3 gcc 3.4.2 ругается, string говорит не определен.
MinGW gcc 3.4.1 ругается точно так же.

Отсюда вывод - вероятно дело в версии gcc :)
...
Рейтинг: 0 / 0
17.03.2006, 11:46
    #33607552
d2e8k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ругается при компиляции на Linuxе...
Разобрался.
надо добавить -I/usr/include/linux-default/include/ при компиляции. А так же указать
Код: plaintext
1.
2.
3.
std::cout;
std::endl;
std::string;


В таком случае компилируется без предупреждений.

Спасибо всем
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ругается при компиляции на Linuxе... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]