1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Проблемы с компиляцией.

Тема в разделе 'Основные вопросы', создана пользователем death, 17 май 2010.

  1. death Ньюфаг

    Сообщения:
    3
    Спасибы:
    0
    Здравствуйте. При компиляции ghost'а (по гайду) появляется ошибка:
    Код:
    death@R2D2:/opt/warserver/ghost/ghost$ sudo make
    g++ -o ghostdbmysql.o  -O3 -DGHOST_MYSQL -I. -I../bncsutil/src/ -I../StormLib/ -c ghostdbmysql.cpp
    ghostdbmysql.cpp:35:25: error: mysql/mysql.h: Нет такого файла или каталога
    ghostdbmysql.cpp: In constructor ‘CGHostDBMySQL::CGHostDBMySQL(CConfig*)’:
    ghostdbmysql.cpp:53: error: ‘mysql_library_init’ was not declared in this scope
    ghostdbmysql.cpp:58: error: ‘MYSQL’ was not declared in this scope
    ghostdbmysql.cpp:58: error: ‘Connection’ was not declared in this scope
    ghostdbmysql.cpp:60: error: ‘mysql_init’ was not declared in this scope
    ghostdbmysql.cpp:62: error: ‘mysql_error’ was not declared in this scope
    ghostdbmysql.cpp:68: error: ‘my_bool’ was not declared in this scope
    ghostdbmysql.cpp:68: error: expected ‘;’ before ‘Reconnect’
    ghostdbmysql.cpp:69: error: ‘MYSQL_OPT_RECONNECT’ was not declared in this scope
    ghostdbmysql.cpp:69: error: ‘Reconnect’ was not declared in this scope
    ghostdbmysql.cpp:69: error: ‘mysql_options’ was not declared in this scope
    ghostdbmysql.cpp:71: error: ‘mysql_real_connect’ was not declared in this scope
    ghostdbmysql.cpp:73: error: ‘mysql_error’ was not declared in this scope
    ghostdbmysql.cpp: In destructor ‘virtual CGHostDBMySQL::~CGHostDBMySQL()’:
    ghostdbmysql.cpp:88: error: ‘MYSQL’ was not declared in this scope
    ghostdbmysql.cpp:88: error: expected primary-expression before ‘)’ token
    ghostdbmysql.cpp:88: error: ‘mysql_close’ was not declared in this scope
    ghostdbmysql.cpp:95: error: ‘mysql_library_end’ was not declared in this scope
    ghostdbmysql.cpp: In member function ‘virtual void CGHostDBMySQL::RecoverCallable(CBaseCallable*)’:
    ghostdbmysql.cpp:111: error: ‘MYSQL’ was not declared in this scope
    ghostdbmysql.cpp:111: error: expected primary-expression before ‘)’ token
    ghostdbmysql.cpp:111: error: ‘mysql_close’ was not declared in this scope
    ghostdbmysql.cpp: In function ‘std::string MySQLEscapeString(void*, std::string)’:
    ghostdbmysql.cpp:471: error: ‘MYSQL’ was not declared in this scope
    ghostdbmysql.cpp:471: error: expected primary-expression before ‘)’ token
    ghostdbmysql.cpp:471: error: ‘mysql_real_escape_string’ was not declared in this scope
    ghostdbmysql.cpp: At global scope:
    ghostdbmysql.cpp:477: error: ‘MYSQL_RES’ was not declared in this scope
    ghostdbmysql.cpp:477: error: ‘res’ was not declared in this scope
    ghostdbmysql.cpp:478: error: expected ‘,’ or ‘;’ before ‘{’ token
    make: *** [ghostdbmysql.o] Ошибка 1
    
    Собственно все делал по гайду, что может быть не так?
  2. death Ньюфаг

    Сообщения:
    3
    Спасибы:
    0
    Попробовал создать символьную ссылку на каталог mysql:
    Код:
    death@R2D2:/opt/warserver/ghost/ghost$ ln -s ../mysql/include/mysql mysql
    И теперь при компиляции появилась другая ошибка:
    Код:
    /usr/bin/ld: cannot find -lmysqlclient_r
    -_-
  3. death Ньюфаг

    Сообщения:
    3
    Спасибы:
    0
    Нашел в чем проблема с помощью гайда на оф. сайте.
    Не хватает библиотеки libmysql++-dev.
    Админы, пожалуйста, добавьте изменения в гайд. Не хватает информации о компиляции boost и либы mysql. О boost внизу темы есть информация, но старая.
    Вот как компилить новую версию boost:
    Компиляция и установка boost
    Первым делом требуется скачать последнию версию библиотеки boost с оф.сайта.
    На текущий момент это можно сделать так:
    Код:
    wget http://downloads.sourceforge.net/project/boost/boost/1.43.0/boost_1_43_0.tar.bz2?use_mirror=space
    Затем извлеките файлы из архива:
    Код:
    sudo tar xjf boost_1_43_0.tar.bz2
    После извлечения, перейдите в директорию boost'а:
    Код:
    cd boost_1_43_0
    Нам не нужно компилировать все компоненты библиотеки, а только Date_time, Thread, System, FileSystem and Regex, поэтому мы будем компилировать только их
    Код:
    sudo ./bootstrap.sh  --with-libraries=filesystem,program_options,system,regex,thread,date_time --libdir=/usr/lib/
    sudo ./bjam
    sudo ./bjam install
    После завершения компиляции, вы можете удалить исходники:
    Код:
    cd ..
    sudo rm -Rf boost_1_43_0