С Новым годом! Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/23: Рейтинг темы: голосов - 23, средняя оценка - 4.65
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705

почему компилятор g++ 4.5.0 не видит тип "vector"?

17.09.2011, 00:13. Показов 4907. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! Старый добрый g++ 3.4.2, аж 2004 года видел всё, работал без сучка и задоринки безо всяких дополнительных опций g++ 4.5.0 спотыкается на таком безобидном коде, и не первый раз уже:

C++
1
2
3
4
5
6
#include <vector>
using namespace std;
int main () {
 vector<int> myvector;
 return 0;
}
Не помогает и
C++
1
 std::vector<int> myvector;
компилятор выдаёт ошибку:
[Linker error] undefined reference to `__gxx_personality_v0'

И где мне брать такую функцию `__gxx_personality_v0'?

Добавлено через 20 минут
Благо ума хватило не удалять старый DEV, а сархивировать, если чё, на него вернусь. Старый конь борозды не испортит!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2011, 00:13
Ответы с готовыми решениями:

Почему vector v{vector{1, 2} }; имеет тип vector<int>
std::vector v{std::vector{1, 2} }; Почему v выводиться как vector&lt;int&gt;

Компилятор не видит vector
#include &lt;vector&gt; using std::vector; vector&lt;double&gt; v; выбивает ошибку вектор не стд, вектор не определён. подскажите плз почему...

Почему компилятор не видит класс?
Либо я уже заработался, либо это какой-то мега-глюк. Не понимаю почему пишет ошибку что не видно класс в соседнем namespace. См скрины.

16
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
17.09.2011, 00:26
kravam, а вектор-то здесь при чем?
Сделай HelloWorld и посмотри, что получится...
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.09.2011, 00:42  [ТС]
Ничё себе- при чём тут вектор... Чё мне нельзя STL в своих проектах использовать? Так-то я HelloWorld умею писать уже. Впрочем, HelloWorld работает.

Добавлено через 10 минут
Вообще всё это более чем странно. Создаётся впечатление, что моя IDE использует часть утилит нового пакета, а часть старого. Короче, сам чёрт ногу сломит.
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
17.09.2011, 00:55
как минимум надо видеть вывод компилятора/линковщика
build log или что-нибудь в этом духе

Добавлено через 8 минут
под логом подразумевается нечто вроде
Bash
1
2
3
make: Entering directory `android_src'
target thumb C: libbluedroid <= system/bluetooth/bluedroid/bluetooth.c
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc  -I system/bluetooth/bluedroid/include   -I system/bluetooth/bluez-clean-headers   -I system/bluetooth/bluedroid   -I out/target/product/generic/obj/SHARED_LIBRARIES/libbluedroid_intermediates   -I dalvik/libnativehelper/include/nativehelper   -I system/core/include   -I hardware/libhardware/include   -I hardware/libhardware_legacy/include   -I hardware/ril/include   -I dalvik/libnativehelper/include   -I frameworks/base/include   -I frameworks/base/opengl/include   -I frameworks/base/native/include   -I external/skia/include   -I out/target/product/generic/obj/include   -I bionic/libc/arch-arm/include   -I bionic/libc/include   -I bionic/libstdc++/include   -I bionic/libc/kernel/common   -I bionic/libc/kernel/arch-arm   -I bionic/libm/include   -I bionic/libm/include/arch/arm   -I bionic/libthread_db/include  -c  -fno-exceptions -Wno-multichar -msoft-float -fpic -ffunction-sections -funwind-tables -fstack-protector -Wa,--noexecstack -Werror=format-security -fno-short-enums -march=armv5te -mtune=xscale -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -include system/core/include/arch/linux-arm/AndroidConfig.h -I system/core/include/arch/linux-arm/ -Wno-psabi -mthumb-interwork -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -DNDEBUG -g -Wstrict-aliasing=2 -finline-functions -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -DNDEBUG -UDEBUG -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64       -MD -o out/target/product/generic/obj/SHARED_LIBRARIES/libbluedroid_intermediates/bluetooth.o system/bluetooth/bluedroid/bluetooth.c
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.09.2011, 00:56  [ТС]
Вот такие ошибки и больше ничего:
[Linker error] undefined reference to `__gxx_personality_v0'
ld returned 1 exit status
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
17.09.2011, 00:58
полная командная строка, или гугл с экстрасенсами
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.09.2011, 01:22  [ТС]
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
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
17.09.2011, 02:44
Вот интересно. В теме вроде про 4.5.0 речь, а в приведённой строке сплошь каталоги 3.4.2.
Ничего не понимаю. Так кто спотыкается, кто нет?
0
 Аватар для TheAthlete
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
17.09.2011, 08:10
Советую скачать нормальный компилятор, например mingw-7.2. Скачиваете, запускаете установочный файл (он один mingw-7.2.exe), указываете путь, куда хотите положить mingw, лучше всего 'c:\mingw', прописываете путь c:\mingw\bin в PATH.

Это версия GCC 4.6.1

Для примера предлагаю запустить следующий код:

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <vector>
 
using std::cout;
using std::endl;
using std::vector;
 
int main() {
  int my_array[5] = {1, 2, 3, 4, 5};
 
  for (int &x: my_array) x *= 2;
  for (int &x: my_array) cout << x << " ";
  cout << endl;
 
  vector<int> vec1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 
  for (vector<int>::const_iterator it = vec1.begin(); it != vec1.end(); ++it) {
    cout << *it << " ";
  }
 
  cout << endl;
 
  for (auto it = vec1.begin(); it != vec1.end(); ++it) {
    cout << *it << " ";
  }
 
  cout << endl;
 
  for (int x: vec1) cout << x << " ";
  return 0;
}
компилировать следующей командной строкой:

$ g++ -std=c++0x -omain main.cpp
$ main.exe
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.09.2011, 15:39  [ТС]
Цитата Сообщение от grizlik78 Посмотреть сообщение
Вот интересно. В теме вроде про 4.5.0 речь, а в приведённой строке сплошь каталоги 3.4.2.
Ничего не понимаю. Так кто спотыкается, кто нет?
Так я кожу-то в 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
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
17.09.2011, 15:47
MinGW ничего про Dev-CPP не знает, так что пути в среде, наверное, вручную надо менять.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.09.2011, 16:19  [ТС]
Так пути-то те же самые остались!
Про 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
Цитата Сообщение от kravam Посмотреть сообщение
Ничё себе- при чём тут вектор... Чё мне нельзя STL в своих проектах использовать? Так-то я HelloWorld умею писать уже. Впрочем, HelloWorld работает.

Добавлено через 10 минут
Вообще всё это более чем странно. Создаётся впечатление, что моя IDE использует часть утилит нового пакета, а часть старого. Короче, сам чёрт ногу сломит.
В том-то и дело, что показанные тобой ошибки никак не ассоциируются именно с вектором.
А другие контейнеры видит?
Ведь это ошибка на стадии линковки. А это чаще всего бывает, если версии стандартных библиотек не соответствуют.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
18.09.2011, 06:39  [ТС]
Чему не соответсвуют?
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
18.09.2011, 11:40
Цитата Сообщение от kravam Посмотреть сообщение
Чему не соответсвуют?
Ну, например, компилятор - новый, а библиотеки - старые.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
18.09.2011, 12:10
Цитата Сообщение от kravam Посмотреть сообщение
И где мне брать такую функцию `__gxx_personality_v0'?
Вектор тут вообще не при чём. Эта функция содержится во внутренней библиотеке. Точно не помню, в которой именно, но скорее всего в libgcc_eh. Такой ошибка как правило говорит о том, что используется корявая сборка компилятора. Однако пост #7 говорит о том, что ты берёшь компилятор одной версии, а run-time поддержка используется от компилятора другой версии

Цитата Сообщение от kravam Посмотреть сообщение
А если просто использовать установленный mingw без IDE то этот код компилится нормально, то есть устанавлваю, mingw в левую папку и компилю в консоли g++ и так далее
Значит IDE подсовывает лишние опции. Или, как вариант, IDE не знает о том, что ты подменил компилятор. Или ты ему указал про то, что подменился бинарник компилятора, но не указал, где лежит новая run-time поддержка

Вкратце у тебя происходит некоррекнтый запуск компилятора из-под IDE. Если есть возможность установить штатным образом IDE с нужной версией комплятора, то лучше переустанови всё с нуля
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
18.09.2011, 18:21  [ТС]
Я сделал так: там можно установить DEV-Cpp без компилятора, то есть оболочку одну, я её установил. Так, а потом стал аккуратно-аккуратно добавлять к ней пакеты, то есть ищу в обновлениях какие есть пакеты и устанавливаю их (откидывая экзотические)

Получается, тот код компилится, узнал много сюрпризов. Например, тот mingw, что предлагает IDE совсем не тот, который лежит на официальном сайте MinGW- в первом отсутствует windows.h; далее пакеты g++ не предлагается DEV C++, а g++.exe лежит в пакете gcc-c++; далее, файл stddef.h, который, кстати имеет отношение к vector тоже автоматом не устанавливается, а надо установить gcc-core. В общем, дело пошло. Все трудности из-за того, наверное, что разработчики Этой IDE ею больше не занимаются, жаль, хорошая IDE. Буду сам помалу.

Добавлено через 13 минут
Естественно, скачиваю всё новое, 2010 года а иначе незачем было даже браться за это дело.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.09.2011, 18:21
Помогаю со студенческими работами здесь

Почему компилятор не видит идентификатор?
Вот ошибки Ошибка (активно) E0260 отсутствует явный тип (требуется &quot;int&quot;) Game Stats C:\GameCS\Game Stats\Game Stats\Game...

Почему компилятор не видит переменную [c]
public static void main(String args) { int k, c, j, a, b, d; j = 10; b = 2000; k = 3000; d = 4000; a =...

Почему компилятор говорит main.cpp|237|error: 'vector' is not a type| (code:blocks, windows)
Здравствуйте! Столкнулся с непонятной мне ошибкой на куске кода int colorfig(vector&lt;double&gt; &amp;targ, vector&lt;*Figure&gt;...

Почему компилятор не понимает тип bool?
#include &lt;stdio.h&gt; #include &lt;iostream .h&gt; #include &lt;fstream.h&gt; #include &lt;iomanip.h&gt; #include &lt;math.h&gt; #include &lt;string.h&gt; ...

Почему компилятор не распознает тип ofstream?
Почему не определяет ofstream хотя библиотека #include &quot;fstream&quot; есть П.5.18.Правил Запрещено размещать задания и решения в виде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru