在mysql连接器中未定义对mysqlx函数的引用

时间:2019-07-19 12:59:34

标签: c++ mysql linker connector

我正在尝试编译c ++文件,但是编译器似乎缺少mysql c ++连接器的某些文件。这就是我要编译的方式:

g++ -I /usr/local/boost_1_70_0 -L /usr/local/boost_1_70_0 -I /usr/include/mysql-cppconn-8 -pthread -std=c++2a `pkg-config gtkmm-3.0 --cflags --libs` srv.cpp -o srv

错误消息中的其中一行是

undefined reference to 
`mysqlx::abi2::r0::string::Impl::to_utf8[abi:cxx11] 
(mysqlx::abi2::r0::string const&)'
/tmp/ccf90UaW.o: In function `mysqlx::abi2::r0::DbDoc::DbDoc()'

似乎是此文件试图查找一些未链接的代码: .../mysqlx/xdevapi.h 有人可以向我指出必要文件的正确方向吗?似乎有些重要文件尚未链接。

1 个答案:

答案 0 :(得分:0)

花一些时间来解决这个问题。通过将makefile更改为以下内容来对其进行修复:

MYSQL_CONCPP_DIR = /usr/include/mysql-cppconn-8
BOOST_DIR = /usr/local/boost_1_70_0
CPPFLAGS = -I $(MYSQL_CONCPP_DIR) -L $(MYSQL_CONCPP_DIR) -I $(BOOST_DIR) -L 
$(BOOST_DIR)
LDLIBS = -lmysqlcppconn8 -lpthread
CXXFLAGS = -std=c++11 `pkg-config gtkmm-3.0 --cflags --libs`
srv: srv.cpp