быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|||||||||||
1 | |||||||||||
почему компилятор g++ 4.5.0 не видит тип "vector"?17.09.2011, 00:13. Показов 4541. Ответов 16
Метки нет (Все метки)
Друзья! Старый добрый g++ 3.4.2, аж 2004 года видел всё, работал без сучка и задоринки безо всяких дополнительных опций g++ 4.5.0 спотыкается на таком безобидном коде, и не первый раз уже:
[Linker error] undefined reference to `__gxx_personality_v0' И где мне брать такую функцию `__gxx_personality_v0'? Добавлено через 20 минут Благо ума хватило не удалять старый DEV, а сархивировать, если чё, на него вернусь. Старый конь борозды не испортит!
0
|
17.09.2011, 00:13 | |
Ответы с готовыми решениями:
16
Почему vector v{vector{1, 2} }; имеет тип vector<int> Компилятор не видит vector Почему компилятор не видит класс? Почему компилятор не видит идентификатор? |
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
17.09.2011, 00:26 | 2 |
kravam, а вектор-то здесь при чем?
Сделай HelloWorld и посмотри, что получится...
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
17.09.2011, 00:42 [ТС] | 3 |
Ничё себе- при чём тут вектор... Чё мне нельзя STL в своих проектах использовать? Так-то я HelloWorld умею писать уже. Впрочем, HelloWorld работает.
Добавлено через 10 минут Вообще всё это более чем странно. Создаётся впечатление, что моя IDE использует часть утилит нового пакета, а часть старого. Короче, сам чёрт ногу сломит.
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
17.09.2011, 00:55 | 4 | |||||
как минимум надо видеть вывод компилятора/линковщика
build log или что-нибудь в этом духе Добавлено через 8 минут под логом подразумевается нечто вроде
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
17.09.2011, 00:56 [ТС] | 5 |
Вот такие ошибки и больше ничего:
[Linker error] undefined reference to `__gxx_personality_v0' ld returned 1 exit status
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
17.09.2011, 00:58 | 6 |
полная командная строка, или гугл с экстрасенсами
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
17.09.2011, 01:22 [ТС] | 7 |
g++.exe "E:\vso_moio\Программирование_на_C++\Новая папка (9)\ra_0.cpp" -o "E:\vso_moio\Программирование_на_C++\Новая папка (9)\ra_0.exe" -I"E:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"E:\Dev-Cpp\include\c++\3.4.2\backward" -I"E:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"E:\Dev-Cpp\include\c++\3.4.2" -I"E:\Dev-Cpp\include" -L"E:\Dev-Cpp\lib" -static
Исходник называется ra_0.cpp. опцию -static добавил я согласной этой теме MinGW версии 4.5.0 содержит libgcc_s_dw2-1.dll без которой ни одна скомпилированная прога не запускается. А как же запускать проги на других машинах? остальное всё по умолчанию Добавлено через 1 минуту Это я приаттачивался OllyDbg, ставил бряк на CreateProcess, жал на F9 и смотрел параметры CreateProcess
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
17.09.2011, 02:44 | 8 |
Вот интересно. В теме вроде про 4.5.0 речь, а в приведённой строке сплошь каталоги 3.4.2.
Ничего не понимаю. Так кто спотыкается, кто нет?
0
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 573
|
||||||
17.09.2011, 08:10 | 9 | |||||
Советую скачать нормальный компилятор, например mingw-7.2. Скачиваете, запускаете установочный файл (он один mingw-7.2.exe), указываете путь, куда хотите положить mingw, лучше всего 'c:\mingw', прописываете путь c:\mingw\bin в PATH.
Это версия GCC 4.6.1 Для примера предлагаю запустить следующий код: main.cpp
$ g++ -std=c++0x -omain main.cpp $ main.exe
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
17.09.2011, 15:39 [ТС] | 10 |
Так я кожу-то в DEV-Cpp
Я установил туда MInGw, он себя "прописал", а всё, что касается 3.4.2 оставил, например в папке E:\Dev-Cpp\include полностью обновил инклуды, но оставил папку E:\Dev-Cpp\include\c++\3.4.2 Вот он видать использует эти 3.4.2, не знаю, почему. Вот я тоже не понимаю, почему он не пообновлял к матери все эти 3.4.2 А если просто использовать установленный mingw без IDE то этот код компилится нормально, то есть устанавлваю, mingw в левую папку и компилю в консоли g++ и так далее. Добавлено через 1 минуту TheAthlete, скачанный мной всего годичной давности, нет оснований думать, что 7.2 будет "работать" лучше, как вариант только разве что оставить.
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
17.09.2011, 15:47 | 11 |
MinGW ничего про Dev-CPP не знает, так что пути в среде, наверное, вручную надо менять.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
17.09.2011, 16:19 [ТС] | 12 |
Так пути-то те же самые остались!
Про DEV-C++, да, не знает наверное. Но в процессе работы запускается множество утилит. И Бог его знает, где он их ищет. А пути остались те же самые, ага. Так, инклуды он запихал в E:\Dev-Cpp\include- ну, так они там и были, этот путь менять не надо E:\Dev-Cpp\bin- сюда он запихал экзешники- так они и были здесь (g++ в частности), путь не меняем E:\Dev-Cpp\lib- тоже ничё не меняем. ...Я щас попробую обновить mingw через менеджер пакетов Dev-Cpp. Может, получится.
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
17.09.2011, 23:47 | 13 |
В том-то и дело, что показанные тобой ошибки никак не ассоциируются именно с вектором.
А другие контейнеры видит? Ведь это ошибка на стадии линковки. А это чаще всего бывает, если версии стандартных библиотек не соответствуют.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
18.09.2011, 06:39 [ТС] | 14 |
Чему не соответсвуют?
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
18.09.2011, 11:40 | 15 |
0
|
18.09.2011, 12:10 | 16 |
Вектор тут вообще не при чём. Эта функция содержится во внутренней библиотеке. Точно не помню, в которой именно, но скорее всего в libgcc_eh. Такой ошибка как правило говорит о том, что используется корявая сборка компилятора. Однако пост #7 говорит о том, что ты берёшь компилятор одной версии, а run-time поддержка используется от компилятора другой версии
Значит IDE подсовывает лишние опции. Или, как вариант, IDE не знает о том, что ты подменил компилятор. Или ты ему указал про то, что подменился бинарник компилятора, но не указал, где лежит новая run-time поддержка Вкратце у тебя происходит некоррекнтый запуск компилятора из-под IDE. Если есть возможность установить штатным образом IDE с нужной версией комплятора, то лучше переустанови всё с нуля
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
18.09.2011, 18:21 [ТС] | 17 |
Я сделал так: там можно установить DEV-Cpp без компилятора, то есть оболочку одну, я её установил. Так, а потом стал аккуратно-аккуратно добавлять к ней пакеты, то есть ищу в обновлениях какие есть пакеты и устанавливаю их (откидывая экзотические)
Получается, тот код компилится, узнал много сюрпризов. Например, тот mingw, что предлагает IDE совсем не тот, который лежит на официальном сайте MinGW- в первом отсутствует windows.h; далее пакеты g++ не предлагается DEV C++, а g++.exe лежит в пакете gcc-c++; далее, файл stddef.h, который, кстати имеет отношение к vector тоже автоматом не устанавливается, а надо установить gcc-core. В общем, дело пошло. Все трудности из-за того, наверное, что разработчики Этой IDE ею больше не занимаются, жаль, хорошая IDE. Буду сам помалу. Добавлено через 13 минут Естественно, скачиваю всё новое, 2010 года а иначе незачем было даже браться за это дело.
0
|
18.09.2011, 18:21 | |
18.09.2011, 18:21 | |
Помогаю со студенческими работами здесь
17
Почему компилятор не видит переменную [c] Почему компилятор говорит main.cpp|237|error: 'vector' is not a type| (code:blocks, windows) Почему компилятор не понимает тип bool? Почему компилятор не распознает тип ofstream? Почему компилятор не видит поле класса Почему компилятор не видит мои переменные? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |