Неопределенная ссылка с использованием коннектора mysql c ++ - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь использовать коннектор 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 :: __ cxx11 :: basic_string, std :: allocator> abi: cxx11 const ':

/ git_repos / FHM / Камера / Программное обеспечение / ExtractMetadata / Build / Linux /../../../ mysql-connector-c ++ - 8.0.13 / include / mysqlx / devapi / common.h: 115: не определено ссылка на `mysqlx :: string :: Impl :: to_utf8 [abi: cxx11] (mysqlx :: string const &) '

/ tmp / cc6dzD4k.o: в функции `mysqlx :: DbDoc :: DbDoc () ':

/ git_repos / FHM / Камера / Программное обеспечение / ExtractMetadata / Build / Linux /../../../ mysql-connector-c ++ - 8.0.13 / include / mysqlx / devapi / document.h: 153: не определено ссылка на `vtable для mysqlx :: DbDoc '

/ 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: undefined reference to vtable для mysqlx :: DbDoc '

/ tmp / cc6dzD4k.o: в функции mysqlx::Value::print(std::ostream&) const': /git_repos/FHM/Camera/Software/ExtractMetadata/Build/Linux/../../../mysql-connector-c++-8.0.13/include/mysqlx/devapi/document.h:507: undefined reference to mysqlx :: common :: Value :: print (std :: ostream &) const '

/ tmp / cc6dzD4k.o :(. Rodata._ZTCN6mysqlx5ValueE0_NS_6common5ValueE [_ZTVN6mysqlx5ValueE] + 0x18): неопределенная ссылка на typeinfo for mysqlx::common::Value' /tmp/cc6dzD4k.o:(.rodata._ZTCN6mysqlx5ValueE0_NS_6common5ValueE[_ZTVN6mysqlx5ValueE]+0x20): undefined reference to mysqlx :: common :: value :: 10):

/ tmp / cc6dzD4k.o :(. Rodata._ZTIN6mysqlx5ValueE [_ZTIN6mysqlx5ValueE] + 0x28): неопределенная ссылка на `typeinfo для mysqlx :: common :: Value '

collect2: ошибка: ld вернул 1 состояние выхода

Makefile: 2: рецепт для цели 'x86' не удался

make: *** [x86] Ошибка 1

Мой Makefile выглядит так:

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 Ответ

0 голосов
/ 29 октября 2018

Вы не связываетесь с библиотекой 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
...