当前位置: 首页 > 知识库问答 >
问题:

使用 mysql c 连接器的未定义引用

苏磊
2023-03-14

我正在尝试使用mySQL c连接器。我已经按照mysql指南https://dev . MySQL . com/doc/connector-CPP/8.0/en/connector-CPP-installation-binary . html下载并解压了二进制文件

当我包括 xdevapi 像这样

#include <mysqlx/xdevapi.h>

我得到以下错误

/tmp/cc6dzD4k.o:在函数` mysqlx::string::operator STD::_ _ cxx 11::basic _ string,std::allocator中

/git_repos/FHM/Camera/Software/ExtractMetadata/Build/Linux/…/…/…/mysql-连接器-c-8.0.13/include/mysqlx/devapi/Common. h: 115:未定义的引用'mysqlx::字符串::Impl::to_utf8[abi: cxx11](mysqlx::字符串常量

/tmp/cc6dzD4k。o: 在函数“mysqlx::DbDoc::DbDocument()”中:

/git_repos/FHM/相机/软件/提取元数据/构建/Linux/../../../mysql-connector-c -8.0.13/include/mysqlx/devapi/document.h:153: 未定义对“适用于 mysqlx 的 vtable::D bDoc” 的引用

/tmp/cc6dzD4k。o: 在函数mysqlx::DbDoc::~DbDoc()':/git_repos/FHM/Camera/Software/ExtractMetadata/Build/Linux/../../../mysql-connector-c-8.0.13/include/mysqlx/devapi/document中。h: 127:未定义vtable for mysqlx::DbDoc'的引用

/tmp/cc6dzD4k.o: In函数< code > mysqlx::Value::print(STD::ostream

/tmp/cc 6 dzd 4k . o:(. rodata . _ ZTC n6 mysqlx 5 valuee 0 _ NS _ 6 common 5 valuee[_ ztv n6 mysqlx 5 valuee]0x 18):对< code > typeinfo for mysqlx::common::Value '/tmp/cc 6 dzd 4k . o:(. rodata . _ ZTC n6 mysqlx 5 valuee 0 _ NS _ 6 common 5 valuee[_ ztv n6 mysqlx 5 valuee]0x 20):对mysqlx的未定义引用

/tmp/cc6dzD4k.o:(.rodata._ZTIN6mysqlx5ValueE[_ZTIN6mysqlx5ValueE]0x28):未定义对“mysqlx类型信息::common::Value”的引用

Collect2:错误:ld返回1个退出状态

生成文件:2:目标“x86”的配方失败

: *** [x86]错误1

我的生成文件如下所示:

g++ -I../../Src -I../../../Fee/Src \
-I/../../../OpenCV/include/opencv \
-I../../../OpenCV/include/opencv2 \
-I../../../mysql-connector-c++-8.0.13/include/ \
-L../../../OpenCV/lib/LinX86 \
-L../../../mysql-connector-c++-8.0.13/lib64/libmysqlcppconn8-static.a -lssl -lcrypto -lpthread \
-g -D LINUX -o extractmetadata ../../Src/extractMetadata.cpp ../../../Fee/Src/Status.cpp \
-std=c++11 \
-lopencv_world -lstdc++fs \

有人知道我在这里错过了什么吗?

共有1个答案

田嘉慕
2023-03-14

您没有链接到 MySQL 库:

-L../../../mysql-connector-c++-8.0.13/lib64/libmysqlcppconn8-static.a

使用:

../../../mysql-connector-c++-8.0.13/lib64/libmysqlcppconn8-static.a

或:

-L../../../mysql-connector-c++-8.0.13/lib64/ -lmysqlcppconn8-static
 类似资料:
  • 问题内容: 我可以毫无问题地创建一个共享库。我创建了libcbitcoin.so(没有错误),并尝试通过可执行文件以及OpenSSL库与之链接。我使用以下命令: bin目录是库的位置。obj目录包含我希望链接到可执行文件的目标文件。在命令中,我使用-L,-l和- rpath选项,我认为这是在Linux中进行链接所需的全部。由于出现类似以下的错误,看来我错了: 在库中找到CBNewByteArray

  • 可能重复: 什么是未定义的引用/未解决的外部符号错误以及如何修复它? 尝试通过编译我的程序 我得到了错误: 不知怎么会进入一个无限循环。

  • 问题内容: 我正在尝试在操作系统上设置libusb API。我在libusb.org上下载了libusb api。我遵循了标准的安装过程: 然后,我启动了Eclipse C / C ++,并从Internet上的教程中复制了一些代码。但是当尝试构建它时,我得到以下输出: 我在/ lib中有libusb.so,在/ usr / local / include中也有usb.h,在/ usr / loc

  • 假设我有两个数据帧df1:col1 col2 col3 df2:col1 col2 col4 我想使用col1和col2连接两个数据帧,而不定义新的别名表名。 我不想做 df=df1.join(df2,(df1.col1==df2.col1) 所以最终的数据帧只有col1 col2 col3 col4 如何实现这一点?

  • 我正在尝试使用AassetManager从android apk访问资产。然而,尽管我已经包含了asset_manager.h和asset_manager_jni.h,但我仍然得到了“对aassetmanager_fromjava的未定义引用”。其他来自asset_manager.h的函数,如AAssetManager_openDir(mgr,"“)等也不能被引用。 以下是完整的代码 这段代码在一

  • 错误:未定义对'pthread_cancel'的引用