人々がこれについて何度か尋ねたことは知っていますが、彼らが得た解決策は私の問題を解決しません (私は C++ の初心者だからです)。
私は3つのファイルを持っています。Main.cpp、Sql.cpp、Sql.hpp。メインに Sql.hpp を含めました。メインから getDate() メソッドを呼び出すと、正常に動作します。ただし、メイン メソッドからメソッド select() を呼び出すと、タイトルにエラーが表示されます。2 つのメソッドと呼び出しを次に示します。
選択する()
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