g ++ не вдається зв’язатися з libmysqlclient


0

Я використовую Ubuntu 12.04 на віртуальній машині на своєму MacbookPro. Я встановив build-basic, mysql-сервер і libmysqlclient-dev. Обидві команди 'mysql' і 'mysql_config' працюють.

Однак наступна програма не посилається:

#include <stdio.h>
#include <unistd.h>
#include <mysql.h>

int main(int argc,char *argv[]){
    printf("hello world\n");

    //init
        {
        MYSQL itsmysql;

        MYSQL* mytemp=0; mytemp=mysql_init(&itsmysql);
        if(mytemp){
            printf("hello world YEP\n");
            }
        else{   
            printf("hello world NOOOO\n");
            }
        }

    return 0;
    }

Я запускаю g ++ за допомогою команди:

g++ `mysql_config --cflags` `mysql_config --libs` test.cpp

У мене це було запущено під 32-бітною версією Ubuntu, але тепер у мене 64-бітна версія. Проблема виникає як з використанням VirtualBox, так і з Parallels. Вихід 'mysql_config' виглядає нормально.

Мені здається, що лінкер не може знайти відповідний тип файлу / архітектури серед файлів libmysqlclient.

Що слід спробувати далі?

Повідомлення про помилку - "невизначене посилання на mysql_init".


Ах, вибачте, щойно додав це ...
user156724

Відповіді:


1

Спробуйте це замість цього: працював на мене

g++ -o test test.cpp `mysql_config --cflags` `mysql_config --libs`

Потім тестуйте

./test
Hello world YEP

g ++ test.cppmysql_config --cflags mysql_config --libs
користувач156724

Мабуть, речі mysql_config повинні бути в кінці рядка :-)
user156724

Публікація "спасибі" не є бажаним способом вдячності на цьому веб-сайті. Ви можете проголосувати відповіді, які вам подобаються, якщо це ваше питання або де завгодно, коли у вас буде 15 репутація. Ви також можете натиснути символ галочки поруч з відповіддю, якщо це ваше питання, як воно є тут, щоб сказати, що ви його прийняли.
Уоррен Хілл

Ну, я натиснув, я більше не буду вам "дякую" :-)
користувач156724
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.