问题描述
Sooo,我正在编写一个 C++ 应用程序来从套接字接收数据并将其保存到 MariaDB 数据库中。
我从 libmariadb3 包中包含了 MariaDB 连接器 c 库,它运行没有问题。
在编译程序时,我必须添加链接选项 -l mysqlclient。
编译命令为:
g++ main.cpp -o output -l mysqlclient
所以我的问题是为什么我必须添加此链接选项以及如何解决它以便我不必添加此选项?
(这是一个示例编译命令。实际上我是用 cmake 编译的,我自己编译了 mariadb 连接器 c 库。cmake 中的链接器选项将是 target_link_options(${PROJECT_NAME} PUBLIC -lmysqlclient))
解决方法
没有解决方法,您需要链接到您要使用的库。
在 CMake 中,target_link_libraries
简化了这一点,并在编译/链接时添加了所需的包含路径和库。