Неприятная ошибка при инициализации вектора - PullRequest
1 голос
/ 25 марта 2012

Я просто пытаюсь создать вектор, но это дает мне огромную ошибку, и я следую рабочему примеру из моего другого проекта. Код:

#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;

struct organism {
    bool One;
    bool Two;
};
std::vector<organism> organisms;

int main() {
    printf("Content-type: text/html\n\n");
    printf("TEST");
    printf(getenv("QUERY_STRING"));

    return 0;
}

Ошибка:

> "make" 
C:/MinGW/bin/gcc.exe -o build/e2.exe source/main.cpp
C:\Users\Stephen\AppData\Local\Temp\ccc0a0w2.o:main.cpp:(.text$_ZN9__gnu_cxx13new_allocatorI8organismE10deallocateEPS1_j[__gnu_cxx::new_allocator<organism>::deallocate(organism*, unsigned int)]+0xd): undefined reference to `operator delete(void*)'
C:\Users\Stephen\AppData\Local\Temp\ccc0a0w2.o:main.cpp:(.eh_frame$_ZNSt12_Vector_baseI8organismSaIS0_EED2Ev+0x13): undefined reference to `__gxx_personality_v0'
C:\Users\Stephen\AppData\Local\Temp\ccc0a0w2.o:main.cpp:(.eh_frame$_ZNSt6vectorI8organismSaIS0_EED1Ev+0x13): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
"make": *** [build] Error 1

> Process Exit Code: 2
> Time Taken: 00:01

Я могу скомпилировать его, если закомментирую std::vector<organism> organisms;, но я понятия не имею, что не так с этой строкой. Точно так же и в моем другом проекте, который прекрасно компилируется.

1 Ответ

8 голосов
/ 25 марта 2012

Вам нужно скомпилировать с g++.exe вместо gcc.exe, чтобы он знал, что ему нужно соединиться с библиотекой C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...