LINUX.ORG.RU

STL-Container


0

0

Hi !
Такая проблемка . Хочу использовать list в своей программе .
но на
#include <list>
g++ компилятор начинает ругаться на это строку .
Вопрос : Как подключить STL библиотеки при компиляции ?

anonymous

Напиши, как ты запускаешь компилятор, и что именно он пишет.

justme
()

У меня Suse 6.4 .
Пишу при компиляции просто :
g++ -ofile file.cpp

по идее g++ - compiler автоматом подключает библиотеки.
пробовал и так :
g++ -lstdc++ file.cpp
не помогает .

При компиляции выдает список большой список и
еще указывает на строку где стоит
#include <list>
и пишет что не может найти такой файл.

anonymous
()

У тебя libgpp.rpm установлен?

justme
()

Да , у меня поставлен libgpp-2.95.2-26

anonymous
()

Попробуй
#include <g++/list>
Только загляни сначала в /usr/include и выясни, как у тебя называется каталог g++* (может быть как-нибудь типа g++-2, g++-3, ...). Можно указать в командной строке компилятора ключ -Ig++ вместо вставки его в #include.

nobody ★★
()

Ребята, а вам не кажется, что директива #include требует указания .h файла? То есть, нунжно сказать #include <list.h>, чтобы оно его нашло... :)

Akan
()

Расширение можно не указыывать - спецификация С++ это позволяет сделать.

Bauron
()

Тем более, что файл list без .h есть

Havoc ★★★★
()

Ну, тогда -Iinclude_file_directory, где include_file_directory - директория, где лежит файл, который надо включить в компиляцию.

Akan
()

хоть ошибка похоже не при линковке, а при компиляции, по-моему правильней писать "g++ file.cpp -lstdc++" вместо "g++ -lstdc++ file.cpp"

anonymous
()
Ответ на: комментарий от anonymous

Вопроса твоего не понял. Что конкретно ты хотел спросить?

nobody ★★
()

po defaultu STL headeryi nahodyatsya v /usr/include/g++-2, vopros :
chto za versiya etih headerov nahoditsya v /usr/include/g++-3(4..)?

anonymous
()

Там находятся те же самые заголовки, но от другого компилятора (другой версии) - если у тебя больше 1 компилера в системе. А вообще это зависит от того, как сконфигурен компилер перед его собственной компиляцией. А где ты прочитал, что по умолчанию STL-заголовки должны лежать в /usr/include/g++-2?

nobody ★★
()

ya ne utverzhdayu, chto oni tam DLOZHNYI lezhat, oni tam prosto
lezhat ( RH ). Ya podumal, mozhet suschestvuet nekotoraya
dogovorennost mezhdu nazvaniem direktorii i versiei kompilyatora.
Vooshem ponyatno.

anonymous
()

Я хотел поблагодарить всей откликнувшихся , особенно nobody.
Спасибо всем , с подключением list разобрался.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.