2017-08-29 13 views
0

J'ai un certain code C que #include s le fichier <mysql/mysql.h>. Je cours sur un Mac, et ne peux pas comprendre comment installer mysql (après avoir exécuté la solution trouvée sur SO, le répertoire mysql n'existe même pas dans la bibliothèque du système). J'ai été capable de télécharger MySQL à partir du code source, et maintenant j'ai un fichier mysql.h - dans le répertoire "include" du code source. Cependant, déplacer ce fichier dans la bibliothèque système ne suffira évidemment pas à faire fonctionner mon programme. Je suppose que j'ai besoin de compiler la bibliothèque (ce que j'ai fait), et de déplacer le fichier binaire quelque part, afin d'être connectable à mon programme.Comment importer manuellement des fichiers .h dans la bibliothèque système?

Selon la suggestion de @ RustyX, j'ai installé le paquet Mac MySQL. Cela a mis une copie de mysql.h dans le répertoire /usr/local/mysql-5.7.19-macos10.12-x86_64/include/. Cependant:

1) J'utilise gcc pour compiler le fichier .c. Je ne suis pas sûr comment configurer gcc pour inclure le répertoire en question. J'ai essayé -L(directory path) - tant pour le package installé Mac MySQL, et le code source MySQL Je downloaded-- mais je reçois l'erreur suivante:

ld: library not found for -lmysqlclient 

Y at-il un autre chemin que j'inclurais pour mysqlclient? Ou un autre paquet à installer?

2) Même si je l'inclue, il ne trouvera toujours pas le fichier puisque le nom de fichier appelé est <mysql/mysql.h>, et le nom de fichier qu'il trouvera est <include/mysql.h>. Puisque le fichier est utilisé par d'autres, est-il préférable de renommer le répertoire include en mysql? Ou pour modifier le chemin d'accès dans le fichier .c, puis le modifier chaque fois avant de valider?

+0

ehh .. 1) Installez le ([paquet mysql] https://dev.mysql.com /doc/refman/5.6/en/osx-installation-pkg.html), 2) Configurez des chemins d'inclusion et de lib supplémentaires pour votre projet (quelque chose comme/usr/local/mysql ...) – rustyx

+0

Vous avez essayé votre solution et vous êtes resté bloqué ; voir le post ci-dessus pour l'état mis à jour. – Alex

+1

Je pense que vous confondez inclus et bibliothèques. Si vous avez fait 'make install', cela affichera les répertoires et les fichiers créés/installés. Vous devez définir l'argument -I et l'argument -L en fonction de l'installation. Aussi, vous dites que vous avez essayé -L avec dir. Avez-vous trouvé 'libmysqlclient.dylib' dans ce répertoire? –

Répondre

0

Avez-vous essayé une déclaration comme ça,

#include <mysql.h> //in your program 

Pour compiler et exécuter

gcc -w -c -g -I/usr/include/mysql filename.c 
gcc -o filename filename.o -L/usr/lib64/mysql -lmysqlclient 
./filename (input params) 
+0

Oui, j'ai essayé ceci, et quand il a dit 'erreur fatale: 'mysql.h' fichier non trouvé', alors j'ai essayé à la place #include le chemin complet de' mysql.h'. À ce moment, il a donné les erreurs que j'ai citées dans mon post. Mais pour l'argument '-L', je mets' -L/Users/pc/Downloads/mysql-5.0.92/include'-- qui est le répertoire qui contient le fichier 'mysql.h'. Peut-être que je devrais en utiliser un autre? – Alex