Mysqlcppconn8 и cmake ошибка при сборке в Linux - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь построить простой пример с новой libmysqlcppconn версией 8, используя cmake, загружаю соединитель и собираю и устанавливаю из исходного кода.Но я получаю ошибку, когда пытаюсь построить свой helloworld, используя cmake или Clion run

/usr/bin/ld: CMakeFiles/hellogcp.dir/src/main.cpp.o: en la función `mysqlx::abi2::r0::internal::Result_common<mysqlx::abi2::r0::internal::Result_detail>::~Result_common()':
/usr/include/mysqlx/devapi/result.h:71: referencia a `mysqlx::abi2::r0::internal::Result_detail::~Result_detail()' sin definir
/usr/bin/ld: CMakeFiles/hellogcp.dir/src/main.cpp.o: en la función `mysqlx::abi2::r0::internal::Result_common<mysqlx::abi2::r0::internal::Result_detail>::~Result_common()':
/usr/include/mysqlx/devapi/result.h:71: referencia a `mysqlx::abi2::r0::internal::Result_detail::~Result_detail()' sin definir
/usr/bin/ld: CMakeFiles/hellogcp.dir/src/main.cpp.o: en la función `mysqlx::abi2::r0::Result::~Result()':
/usr/include/mysqlx/devapi/result.h:71: referencia a `mysqlx::abi2::r0::internal::Result_detail::~Result_detail()' sin definir
/usr/bin/ld: CMakeFiles/hellogcp.dir/src/main.cpp.o: en la función `mysqlx::abi2::r0::Result::~Result()':
/usr/include/mysqlx/devapi/result.h:71: referencia a `mysqlx::abi2::r0::internal::Result_detail::~Result_detail()' sin definir

Я тестирую с

find_library(MYSQL_LIB mysqlcppconn8)
target_link_libraries(${PROJECT_NAME} ${MYSQL_LIB})

Но ошибка та же с или безfind_library.

Если я использую:

set(EXTRA_LIBRARY "mysqlcppconn8")

Я получаю

/usr/bin/ld: can not be found -lmysqlcppconn8
/usr/bin/ld: can not be found -lmysqlcppconn8

с:

g ++ -std = c++ 11 -I ... / include -L ... / lib64 src / main.cpp -lmysqlcppconn8 -o app

Отлично компилируется.Но если я удаляю -lmysqlcppconn8, я получаю ту же ошибку, что и cmake.

Как я могу добавить -lmysqlcppconn8 к cmake?

1 Ответ

0 голосов
/ 03 июня 2019

Исправлено добавлением библиотеки с расширением

if (BUILD_MODE STREQUAL "Docker")
    message("***************************** USING STATIC LIBS **************************************")
    add_compile_definitions(STATIC_CONCPP)
    set(BUILD_SHARED_LIBS OFF)
    set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-static")
    set(DCMAKE_FIND_LIBRARY_SUFFIXES .a)
    find_library(PISTACHE_LIB libpistache.a)
    find_library(MYSQL_LIB libmysqlcppconn8-static.a)
    set(MY_LIBS ${PISTACHE_LIB} ${MYSQL_LIB})
else()
    message("***************************** USING SHARED LIBS **************************************")
    find_library(PISTACHE_LIB libpistache.so)
    find_library(MYSQL_LIB libmysqlcppconn8.so)
    set(MY_LIBS ${PISTACHE_LIB} ${MYSQL_LIB})
endif (BUILD_MODE STREQUAL "Docker")
unset(BUILD_MODE CACHE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...