1
我只是想做一个矢量,但它给了我一个巨大的错误,我正在从我的其他项目中看到一个工作示例。代码:当初始化矢量时出现令人讨厌的错误
#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;
,但我不知道什么是错线。在我的其他项目中完全一样,编译得很好。
Damnit。我只是用gcc而不是g ++编译来解决另一个问题;也就是说,g ++不适用于CGI/Apache。 – 2012-03-25 03:21:00
也许你应该问一个单独的问题。 :) – 2012-03-25 03:21:34
你也可以用'gcc'进行编译,但是可以通过'-lstdC++'作为选项(以获得正确链接的C++库):'gcc -o build/e2.exe source/main.cpp -lstdC++'。 – 2012-05-25 19:20:13