связать libmysql.lib с gcc или dev c ++ в windows - PullRequest
1 голос
/ 30 июня 2011

я пытался связать mysql с c ++, ниже приведен код для ref

файл с именем sqlfunction.cpp имеет следующий код, который помогает подключиться mysql

#include <mysql.h>
#include "rlmodbusclient.h"
#include "modbusdaemon.h"

MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;

bool Opendb(char *pc,char *user, char *pass, char *db)
{

    conn = mysql_init(NULL);
   // Connect to database

   if (!mysql_real_connect(conn, pc,
   user, pass, db, 0, NULL, 0)) {
   fprintf(stderr, "%s\n", mysql_error(conn));
   return 0;
   } else return 1;

}

теперь, если выше, вызывается из программных файлов, подобных этому

char pc[10]="localhost",user[5]="root",pass[8]="pass",db[6]="database";

   ret = Opendb(pc,user,pass,db);
   printf("opendb_buttonevent = %d\n",ret);

это все хорошо, но единственное, что программа вообще не компилируется

ошибка неопределенная ссылка на mysql_init @ 4 '

Я нашел одно решение для этого, которое

http://www.openwebspider.org/documentation/how-to-link-libmysqllib-with-dev-c-or-gcc-under-windows/

по этой ссылке предлагается запустить reimp.exe с libmysql.lib

Я пытался запустить это, но это не имеет никакого смысла, пожалуйста, если кто-то сделал это выше, объясните, как использовать reimp для решения этой проблемы.

спасибо

так же, как добавить команду, которую я использую для запуска reimp

C:\Documents and Settings\XPMUser\Desktop\mingwutils\bin>reimp.exe "C:\Program F
iles\MySQL\MySQL Server 5.5\lib\libmysql.lib"
reimp.exe: dlltool: No such file or directory

как видно, он говорит: dlltool: такого файла нет, но я обнаружил, что dlltool является частью Каталог C: \ MinGW \ bin ... который не имеет никакого смысла ?????

1 Ответ

0 голосов
/ 16 июля 2011

Общая проблема заключается в том, что библиотека libmysql.lib находится в специфичном для Microsoft формате lib, с которым mingw не может ссылаться. Кажется, что reimp.exe может конвертировать такие библиотеки и для этого нужен dlltool. Вероятно, он не мог найти его, потому что его нет в вашей PATH. Попробуйте

установить PATH =% PATH%; C: \ MinGW \ bin reimp.exe "C: \ Program Files \ MySQL \ MySQL Server 5.5 \ lib \ libmysql.lib"

После этого вы должны получить файл libmysql.a, который должен быть перемещен туда, где его может найти компоновщик mingw, например, каталог вашего проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...