C++ templates & ASP9

Автор: ViPer Дата: 10.06.2003 13:55 Такая проблема - поставил я себе ASP9...
Все хороше, но проги, которые до этого прекрасно
компилились на 7.1-7.3 теперь откаываются работать.
Конкретно не работает все, что связано с template, т.е. програ

#include <string>
void main()
{
string s;
}

при компиляции c++ main.cpp
говорит, что string не объявлен как тип...
При том что под 7.3 это естест-но работает.
не работает так же все объявления типа
list<int> lst;

При этом все заголовочные файлы естественно находятся.
Re: C++ templates & ASP9 10.06.2003 14:14ave #include <string>

using namespace std;

void main()
{
string s;
}
Re: C++ templates & ASP9 10.06.2003 14:41Vladimir Dyakov этого способа не знал; есть там у gcc опция какая-то, чтобы с определениями старого типа работать, и ещё приходилось инклюдить файлы директивами типа #include <string<b>.h</b>>
Re: C++ templates & ASP9 12.06.2003 15:57ViPer Спасибо это помогло!
Однако, почему эта прога компилилась под предидущими версиями и куда нужно вписать
using namespace std;
чтобы его каждый раз в новую прогу не вставлять?
Re: C++ templates & ASP9 13.06.2003 10:37Vladimir Dyakov экспортировать переменную окружения надо CFLAGS с параметром типа -Wold-style-cast
Re: C++ templates & ASP9 13.06.2003 18:30ace Компилируй тогда gcc296 и не мучайся. В gcc3 много изменений, связанных с принятием стндарта ANSI C++, поэтому переделывать прийдется много. Вообще имхо правильно писать префиксы namespac'ов при каждом идентификаторе - std::string, std::list<std::list> - иначе могут быть проблемы, если где-то уже есть класс string или list. Собственно namespace для того и нужен.
Re: C++ templates & ASP9 13.06.2003 19:39zakon Люди не пользуйтесь gcc 2.96 и gcc 3.0.x
Re: C++ templates & ASP9 17.06.2003 11:01ace Согласен, тогда уж 2.95. Но в 3.2.2 тоже хватает. Просто 2.96 он есть в стандартной поставке и его легко можно юзать.
Re: C++ templates & ASP9 21.06.2003 03:29wizard580 Люди, вот я решил продолжить писать прогу, которую начал в АСП 7.3.
Открываю KDevelop, там свой проект. В свойствах проекта ставлю галочку на Wold_style_cast (или что-то вроде того). Вроде компилится. Только ТУЧА предупреждений лезет, что использую этот самый "старый стиль". Компиляция идет 10 минут из-за этих сообщений. Как их отрубить?
При чем больше всего не мои файлы светятся, а файлы заголовков Qt 3.1.2 (Qt MDI project).

Или скажите, как в АСП9 компилить на gcc 2.96.
Re: C++ templates & ASP9 21.06.2003 03:56wizard580 Не компилится. Я ошибся. Просто я не делал Autoconf & automake.

---
*** Creating configure
configure.in:26: warning: do not use m4_patsubst: use patsubst or m4_bpatsubst
configure.in:62: error: m4_popdef: undefined macro: AC_Dest
autoconf/status.m4:844: AC_CONFIG_FILES is expanded from...
configure.in:62: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
gmake[1]: *** [cvs] Ошибка 1
gmake: *** [all] Ошибка 2
*** failed ***
---

В чем дело, знаете?
У меня фантазия кончилась. (я еще в этом всем плохо разбираюсь).
Re: C++ templates & ASP9 21.06.2003 04:09wizard580 но если не делать autoconf & automake, а только configure, а затем сразу build, то начинает компилиться, с той самой кучей предупреждений.

что делать?
Re: C++ templates & ASP9 21.06.2003 08:48Vladimir Dyakov если кода не слишком много и не в лом, то лучше бы поправить исходиники, чтобы под ANSI C тянули
Re: C++ templates & ASP9 21.06.2003 09:01wizard580 все. разобрался. компилится.
надо было поставить comat-gcc-*.rpm с 3го диска.
короче там все есть.

Только сообщения ни куда не делись, так что вопрос не снимается !!!
Люди! Помогите !!!

Как раз многовато и несколько "влом". Когда все заработает хоть на 50%, обязательно переделаю, а щас не те у меня проблемы, чтобы между стандартами метаться. Проект то нехилый вырастает... Улыбка
Re: C++ templates & ASP9 23.06.2003 10:48ace Во-первых, правильно советуют - поправь код для совместимости с ANSI C++ - все равно никуда от него не деться, кстати, можешь баги найти в процессе переработки. (как было у меня). К тому-же gcc2.96 глючной, да и в следующем дистрибутиве я думаю его уже не будет, поэтому рано или поздно прийдется переписывать, а к тому времени еще больше кода будет.

Насчет проекта - лучше создай новый проект в ASP9 и просто перетащи туда файлы из старого - я всегда так делаю. Версии всех этих auto* поменялись, поэтому проблем со старыми файлами не избежать.

Ну а насчет компиляции gcc2.96 - метод стандартный export CC=gcc296;export CXX=g++296
Или вообще снеси gcc3 и поставь симлинки с gcc296 на gcc и т.д. Тогда вообще экспортировать ничего не надо.

Кстати, по некоторому недоразомению получилась у меня такая штука, что компилил я свой проект с gcc2.96, а ликовал с gcc3. Все как-то работало Улыбка Только в случае возникновения какого-нить exception, процессу посылался SIGKILL. Долго я думал в чем может быть проблема - файлов - то много, вроде смотришь - все собираются с помощью gcc296, а "небольшие вкрапления" gcc я не заметил.
Так что лучше, чтобы в системе стоял один компилятор Улыбка
Re: C++ templates & ASP9 26.06.2003 02:57wizard580 А не создается в АСП9 в KDevelop Qt MDI Project. "нелокализованные" ошибки вылазят. Даже configure не создается...

Глюк... Как победить?
Re: C++ templates & ASP9 26.06.2003 06:29wizard580 [www.kdevelop.org]

там есть решение этой проблемы. Это баг RH9.
А АСП'шники неудосужились проверить/оттестить то, что они продают. Как в прочем и RedHat. Но опять-же, это не отмазка. Деньги то мы кому платим?

Короче, я запостил баг. Ждем обновления.
RSS-материал