היתחברות ל MySQL:

Jonatan 44

New member
היתחברות ל MySQL:

שלום, אני עובד על linux ומותקנת לי בו סיפריית ה mysql, אני מנסה להיתחבר ל MySQL דרך C:
#include <mysql/mysql.h> #include <stdio.h> static MYSQL conn; int main() { if(mysql_real_connect(&conn, "localhost", "UserName", "Password", "Database",0,NULL,0)) { printf("MySQL Connect:Connected!\n"); } mysql_close(&conn); return 0; }​
היא עושה דבר פשוט: מיתחברת אל ה MySQL ומחזירה הודעה במיקרה של הצלחה. הבעייה היא שכאשר אני מהדר את התוכנית הפלט הבא יוצא לי (אני עובד אם GCC):
jonatan@localhost:~/$ gcc mysql.c -o mysql.c /tmp/cc88UVZL.o(.text+0x30): In function `main': : undefined reference to `mysql_real_connect' /tmp/cc88UVZL.o(.text+0x54): In function `main': : undefined reference to `mysql_close' collect2: ld returned 1 exit status jonatan@localhost:~/$​
אפשר ליראות שהידרתי את התוכנית בדרך הרגילה, gcc mysql.c -o mysql, האם צריכים להיות לפקודה דגלים נוספים? תודה.
 

vinney

Well-known member
אתה צריך ללנקג' עם הספריה של MYSQL

משהו כמו mysql.so, שאתה צריך לצרף עם l- לשורת הפקודה. (או שזה sl בלינוקס? משהו כזה...)
 

desertboy

New member
ליתר דיוק

-L/path/to/mysql/lib/director -lmysqlclient כלומר עם הדגל L אתה אומר ללינקר איפה לחפש את הספריה המבוקשת. ועם הדגל l אתה אומר ללינקר מה שם הספריה שמות ספריה מופיעות כ libname כאשר את ה prefix lib אתה לא צריך לתת ללינקר.
 

Jonatan 44

New member
כן תודה

הינה מדריך מעולה ל MySQL && C: http://www.synnottsoftware.com/tutorials/mysqlbasic.php בדיוק מצאתי, תודה. אגב, השורה שכתבתי הייתה צריכה להיות: mysql_real_connect(&mysql_conn, "localhost", "jonatan", "21g4hqs", "test",3306,NULL,0) בימקום ה 3306 (שזה הפורט של החיבור) כתבתי 0. תודה
 
למעלה