URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3458
[ Назад ]

Исходное сообщение
"Компиляция c++"

Отправлено Quarc , 08-Окт-04 11:39 
Писал прогу c++, дистрибутив debian 3.0r1, версия компилятора 2.95(хотя мне кажется это не столь важно)
Потом пересел на дистрибутив LinuxXP(нечто редхатовое), компилятор 3.3

и вдруг он мне выдал кучу ошибок undefined reference, в основном ему не нравились оперетаоры new и delete. После суточных поисков нашел что нужно добавить -lstdc++

Вопрос собственно где что надо прописать, чтобы лишний раз не приписывать эту либу, или это каприз gcc 3.3?


Содержание

Сообщения в этом обсуждении
"Компиляция c++"
Отправлено Alexander S. Salieff , 08-Окт-04 20:05 
>Писал прогу c++, дистрибутив debian 3.0r1, версия компилятора 2.95(хотя мне кажется это
>не столь важно)
>Потом пересел на дистрибутив LinuxXP(нечто редхатовое), компилятор 3.3
>
>и вдруг он мне выдал кучу ошибок undefined reference, в основном ему
>не нравились оперетаоры new и delete. После суточных поисков нашел что
>нужно добавить -lstdc++
>
>Вопрос собственно где что надо прописать, чтобы лишний раз не приписывать эту
>либу, или это каприз gcc 3.3?

По дефолту в GNU Compilers Collection вызов враппера gcc в коммандной строке не линкует libstdc++, не включает exceptions и rtti (по историческому наследию, ибо это враппер для C а не для C++), при надобности это нужно линковать и включать руками. Если хочется чтобы всегда подключались все C++'ные примочки и либы, нужно юзать враппер g++. Вроде как
g++ -fno-exceptions -fno-rtti proga.cpp -o proga
аналогично
gcc proga.cpp -o proga -lstdc++
Ну, очень грубо, конечно...