我对 C++ 和 Linux (Ubuntu) 很陌生,所以如果我理解有点慢,请不要杀了我。
我尝试使用 C++ 和 MySQL 连接器 mysql++ 建立与我的 SQL DB 的连接。至于开发环境,我用的是Eclipse。至于编译器,Linux 的标准编译器(g++)。
用了 9 个小时的 Google 之后,我非常乐观地认为我必须安装所有必要的库。但是好吧,因为它不起作用,也许不是。
我尝试使用的 C++ 代码是:
#include <iostream>
#include "mysql++.h"
#include "mysql.h"
using namespace mysqlpp;
using namespace std;
int main() {
try {
Connection conn(false);
conn.connect("DB", "127.0.1.1:3306", "root", "root");
Query query = conn.query();
} catch (BadQuery er) { // handle any connection or
// query errors that may come up
cerr << "Error: " << er.what() << endl;
return -1;
} catch (const BadConversion& er) {
// Handle bad conversions
cerr << "Conversion error: " << er.what() << endl <<
"\tretrieved data size: " << er.retrieved <<
", actual size: " << er.actual_size << endl;
return -1;
} catch (const Exception& er) {
// Catch-all for any other MySQL++ exceptions
cerr << "Error: " << er.what() << endl;
return -1;
}
cout<<"Sucesss";
}
我在构建项目时遇到的错误:
Invoking: GCC C++ Linker
g++ -o "MySQL Training" ./Main.o ./aead.o
./aead.o: In Funktion `main':
/home/florian/workspace/MySQL Training/Debug/../aead.cpp:5: Mehrfachdefinition von `main'
./Main.o:/home/florian/workspace/MySQL Training/Debug/../Main.cpp:8: first defined here
./Main.o: In Funktion `main':
Main.cpp:(.text+0x20): Nicht definierter Verweis auf `mysqlpp::Connection::Connection(bool)'
Main.cpp:(.text+0x4a): Nicht definierter Verweis auf `mysqlpp::Connection::connect(char const*, char const*, char const*, char const*, unsigned int)'
Main.cpp:(.text+0x68): Nicht definierter Verweis auf `mysqlpp::Connection::query(char const*)'
Main.cpp:(.text+0x86): Nicht definierter Verweis auf `mysqlpp::Connection::~Connection()'
Main.cpp:(.text+0xb6): Nicht definierter Verweis auf `mysqlpp::Connection::~Connection()'
collect2: error: ld returned 1 exit status
make: *** [MySQL Training] Fehler 1
18:22:13 Build Finished (took 908ms)
我在从源代码安装 mysql++ 时也遇到了一些问题(即使安装了 mysql 客户端和连接器,./configure 也找不到 mysqlclient 库)。
希望你能帮助我,因为我没有想法和谷歌页面。