2014-12-30 2 views
0

Я построил MariaDB 10.0.15 из источника (с флагом WITH_EMBEDDED_SERVER) и хотел бы протестировать его общую библиотеку с помощью простой программы. Я новичок в CMake.Тестирование разделяемой библиотеки MariaDB с использованием CMake

Моя программа заключается в следующем:

#include <my_global.h> 
#include <mysql.h> 
#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char **argv) 
{ 
    MYSQL *con = mysql_init(NULL); 

    if (con == NULL) 
    { 
     fprintf(stderr, "%s\n", mysql_error(con)); 
     exit(1); 
    } 

    if (mysql_real_connect(con, "localhost", "root", "root_pswd", 
      NULL, 0, NULL, 0) == NULL) 
    { 
     fprintf(stderr, "%s\n", mysql_error(con)); 
     mysql_close(con); 
     exit(1); 
    } 

    if (mysql_query(con, "CREATE DATABASE testdb")) 
    { 
     fprintf(stderr, "%s\n", mysql_error(con)); 
     mysql_close(con); 
     exit(1); 
    } 

    mysql_close(con); 
    exit(0); 
} 

Я создал следующий CMakeLists.txt файл:

cmake_minimum_required(VERSION 2.8.4) 
project(mariadb_simple_test) 

add_subdirectory(/usr/src/mariadb-10.0.15/libmysqld mariadb) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES main.cpp) 
add_executable(mariadb_simple_test ${SOURCE_FILES}) 

Это хороший способ сделать это? При попытке его создания CMake жалуется на следующую ошибку: Неизвестная команда CMake «ADD_CONVENIENCE_LIBRARY», что заставляет меня думать, что некоторые модули CMake, вероятно, отсутствуют, но почему?

ответ

0

add_subdirectory является недействительным, поскольку add_subdirectory используется для извлечения других CMakeLists.txt файлов

Вы должны установить компилятор включать папки с, это должно быть установить папку скомпилированный MariaDB:

include_directories("<your folder with headers>") 

Тогда вы должны связать против libmysqlclient.so с:

target_link_libraries(mariadb_simple_test "mysqlclient") 

Посмотрите за Linux с нуля построить MariaDB п Источник ром: http://www.linuxfromscratch.org/blfs/view/svn/server/mariadb.html

Вы, вероятно, следует отредактировать файл CMakeCache.txt после вашего же выполнить команду CMake, чтобы указать папку для установки, например, к/Opt/MariaDB/

Я оставляю настройки пути поиска библиотек из CMake, как дополнительная домашняя работа :-)

Смежные вопросы