Bonjour,

Je rencontre un problème lors de la compilation du programme tout simple ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
#include <my_global.h>
#include <mysql.h>
 
int main(int argc, char **argv)
{
  printf("MySQL client version: %s\n", mysql_get_client_info());
 
  exit(0);
}
Je suis sous Windows XP, avec :
1) gcc 4.8.1 (MinGW32, installé dans C:\MinGW)
2) MySQL Connector C 6.1.2 Win32 (mysql-connector-c-6.1.2-win32.msi ; téléchargé ici : http://dev.mysql.com/downloads/connector/c/ ) dans C:\Program Files\MySQL\MySQL Connector C 6.1

J'encode mes fichiers en UTF-8 sans BOM, sous Notepad++ (à moyen terme j'envisage de passer sous CodeBlocks, à long terme QTCreator)

Le dossier C:\MinGW\bin est bien dans ma variable d'environnement PATH.

Ci-dessous également mon makefile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CC=gcc -std=c99 
 
all: mysql_test
 
mysql_test: 
	$(CC) mysql_test.c -o mysql_test.exe
 
clean:
	del mysql_test.exe
Et le message d'erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
E:\projet\c\mysql_test>mingw32-make all
gcc -std=c99 mysql_test.c -o mysql_test.exe
mysql_test.c:6:23: fatal error: my_global.h: No such file or directory
 #include <my_global.h>
                       ^
compilation terminated.
makefile:6: recipe for target 'mysql_test' failed
mingw32-make: *** [mysql_test] Error 1
Entre autres tentatives, j'ai modifié mon makefile comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CC=gcc -I "C:\Program Files\MySQL\MySQL Connector C 6.1\include" -L "C:\Program Files\MySQL\MySQL Connector C 6.1\lib"
 
all: mysql_test
 
mysql_test: 
	$(CC) mysql_test.c -o mysql_test.exe
 
clean:
	del mysql_test.exe
Cette fois, le message d'erreur est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 E:\projet\c\mysql_test>mingw32-make all
gcc -I "C:\Program Files\MySQL\MySQL Connector C 6.1\include" -L "C:\Program Files\MySQL\MySQL Connector C 6.1\lib" mysq
l_test.c -o mysql_test.exe
In file included from mysql_test.c:6:0:
C:\Program Files\MySQL\MySQL Connector C 6.1\include/my_global.h:912:22: error: static declaration of 'rint' follows non
-static declaration
 static inline double rint(double x)
                      ^
In file included from C:\Program Files\MySQL\MySQL Connector C 6.1\include/my_global.h:945:0,
                 from mysql_test.c:6:
C:\Program Files\MySQL\MySQL Connector C 6.1\include/my_dbug.h:119:20: fatal error: crtdbg.h: No such file or directory
 #include <crtdbg.h>
                    ^
compilation terminated.
makefile:6: recipe for target 'mysql_test' failed
mingw32-make: *** [mysql_test] Error 1
Etrange, cette redéfinition de rint !?

Auriez vous une idée ? Quelques explications ?

Ou même une solution ?

J'aimerais bien comprendre ce qui bloque, et compiler ce petit bout de programme...

D'avance merci !