![]() |
c++: undefined reference to ...
hallo, hab jetzt schon lange delphi programmiert und wollte mal ein bisschen c++ programmieren, doch ich schaff es nicht. ich hab jetzt schon ewig im netz gesucht, aber nichts gefunden. ich weiß ja nicht einmal, wo ich den fehler mache: beim compilieren, in der settings.h, ...?
settings.h:
Code:
settings.cpp:
class Settings
{ private: char* db; char* server; char* user; char* passwd; public: Settings(); char* getDB(); };
Code:
first_test.cpp:
#include "settings.h"
#include <stdlib.h> #include <stdio.h> #include <iostream.h> using namespace std; Settings::Settings() { db = "testadmin"; server = "localhost"; user = "xxx"; passwd = "xxx"; } char* Settings::getDB() { return db; }
Code:
Makefile:
#include <iostream>
#include <mysql++.h> #include <stdlib.h> #include "settings.h" using namespace std; int main(int argc, char* argv[]) { Settings::Settings s; mysqlpp::Connection conn(false); if(conn.connect(s.getDB(), "localhost", "xxx", "xxx")) { mysqlpp::Query query = conn.query("select ..."); if(mysqlpp::StoreQueryResult res = query.store()) { cout << "phone_number of user 1 is " << res[0][0] << "\n"; } else { cerr << "Failed to get phonenumber from user 1: " << query.error() << "\n"; return 1; } return 0; } else { cerr << "DB connection failed: " << conn.error() << "\n"; return 1; } }
Code:
Beim compilieren bekommen ich immer einen undefined reference to fehler:
CXX := g++
CXXFLAGS := -I/usr/include/mysql -I/usr/include/mysql++ LDFLAGS := -L/usr/lib -lmysqlpp -lnsl -lz -lm EXECUTABLE := main all: first_test clean: rm -f $(EXECUTABLE) *.o
Code:
# make
g++ -I/usr/include/mysql -I/usr/include/mysql++ -L/usr/lib -lmysqlpp -lnsl -lz -lm first_test.cpp -o first_test /tmp/ccZp8kS2.o: In function `main': first_test.cpp:(.text+0xa3): undefined reference to `Settings::Settings()' first_test.cpp:(.text+0xc1): undefined reference to `Settings::getDB()' collect2: ld gab 1 als Ende-Status zurück make: *** [first_test] Fehler 1 |
Re: c++: undefined reference to ...
Du musst make dazu bringen, auch settings.cpp zu kompilieren und zu linken. Meine make-Kenntnisse sind etwas eingerostet, aber du musst wohl irgendwie settings.o als Abhängigkeit für first_test definieren.
HTH, Uli. |
Re: c++: undefined reference to ...
danke, ich habs jetzt mit folgendem befehl geschafft:
Code:
g++ -I /usr/include/mysql -I /usr/include/mysql++ -L /usr/lib -lmysqlpp -lnsl -lz -lm -o first_testi first_test.cpp settings.cpp
|
Re: c++: undefined reference to ...
Zitat:
Dazu müsstest du IIRC eine Zeile wie Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz