0

我想用 C++ 编写一个应用程序并在其中使用 MySQL 数据库。我使用了 mariadbclientpp库。所以我克隆了它并在 windows vs 2019 中编译它,它运行良好。但是当我想在 Raspbian 中执行此操作时,出现以下链接错误:

/usr/bin/ld: /tmp/ccJjO2Jo.o: in function `main':

sqltest.cpp:(.text+0xd8): undefined reference to `mariadb::account::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status

我是 Linux 的新手,所以我做了很多搜索,我尝试了一些修复,但没有一个能帮助我。我尝试了这种方法来编译我的代码:

1

g++ mysqltest.cpp  -I/usr/include/mariadb -L/usr/lib/arm-linux-gnueabihf/ -lmariadb -I/usr/local/include/mariadb++/ -L/usr/local/lib/libmariadbclientpp.a

2

 g++ -o mysqltest sqltest.cpp -lstdc++ -I/usr/include/mariadb/ $(mariadb_config --libs)

有什么想法吗?

4

1 回答 1

0

我发现了问题。我是关于静态库的。静态库添加没有 -L 选项,所以我将命令更改为:

g++ mysqltest.cpp /usr/local/lib/libmariadbclientpp.a -I/usr/include/mysql

完成了。

于 2020-05-19T19:11:14.893 回答