2013-06-25 57 views
0

我知道有人問過這幾次,但他們得到的解決方案不能解決我的問題(因爲我是C++的noob)。對方法的未定義引用

我有3個文件。 Main.cpp,Sql.cpp,Sql.hpp。我包含在我的主要Sql.hpp中。當我從主函數調用方法getDate()時,它工作正常。但是,當我從主方法調用方法select()時,我在標題中出現錯誤。這裏有兩種方法和調用:

選擇()

void select(const string table, const string column, const string condition, const string condition_2, const string condition_3) { 
    otl_stream s; 
    const string select = str(format("SELECT %2% FROM %1% WHERE %3% < 20130619 AND %4% = 'someValue' AND (%5% = 'someValue' OR %5% = 'someValue' ") 
     % table % column % condition % condition_2 % condition_3); 
    cout << select; 

GETDATE()

string Sql::getDate() { 
    time_t rawtime; 
    struct tm *timeinfo; 
    char buffer [80]; 

    time (&rawtime); 
    timeinfo = localtime (&rawtime); 

    strftime (buffer, 80,"%Y%m%d", timeinfo); 
    string date = buffer; 

    return date; 
} 

主要

Sql sql(host, user, pwd, db, driver); 
if(sql.open()) { 
    cout << "Datenbankverbindung erfolgreich" << endl; 
    sql.getDate(); 
    sql.select(table, column, condition, condition2, condition3); 
} 

我得到的錯誤是:

g++ "-IC:\\Users\\USERNAME\\Desktop\" -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\Main.o" "..\\src\\Main.cpp" 
g++ -o edv-vac-xml.exe "src\\xml.o" "src\\sql.o" "src\\header\\tinyxml2\\tinyxml2.o" "src\\Main.o" -lodbc32 -lcomctl32 
src\Main.o: In function `main': 
C:\Users\USERNAME\Desktop\edv-vac-xml\Debug/../src/Main.cpp:39: undefined reference to `Sql::select(std::string, std::string, std::string, std::string, std::string)' 

collect2: ld returned 1 exit status 
+0

http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i-的一個可能固定。 – chris

回答

1

如果select應該是sql類的例程。您應該添加

void Sql::select(...) { 
... 
} 
+0

哦,我的主,哈哈。你剛剛救了我的一天..非常感謝!不能相信我正在尋找我的錯誤2小時.. – FRules

+0

這是最終在每個人的自動精神檢查清單中的事情之一。 –