对 mariadb::account::create() 的未定义引用

Undefined reference to mariadb::account::create()

我想用 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 的新手,所以我进行了很多搜索并尝试了一些修复,但其中 none 对我有帮助。我试过这种方式来编译我的代码:

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)

有什么想法吗?

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

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

完成了。