我有以下3個文件:...未定義的參考... collect2:LD返回1退出狀態
error.h
#ifndef error_h
#define error_h
#include <string>
#include <iostream>
#include <cstdio>
void Error(std::string msg);
#endif
error.cpp
#ifdef error_h
#include "error.h"
void Error(std::string msg)
{
std::cerr
<< "\n=========================================================\n"
<< msg
<< "\n=========================================================\n";
exit(EXIT_FAILURE);
}
#endif
foobar.cpp
#include "error.h"
int main()
{
for(int i=0; i<99; i++)
if(i==55)
Error("this works");
return 0;
}
現在我做:
$ g++ -c error.cpp foobar.cpp
$ g++ error.o foobar.o -o exampleprogram
我也得到:
foobar.o: In function `main':
foobar.cpp:(.text+0x4b): undefined reference to `Error(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >)'
collect2: ld returned 1 exit status
我在做什麼錯?我需要了解什麼才能解決此問題,以及未來在未提問的情況下的類似問題?謝謝!
現在我也意識到exit(int)是在cstdlib中而不是在cstdio中 – user1358 2012-08-05 18:20:04