Много гуглил много где находил подобные вопросы, но там топики заканчивались невыясненными.
И так суть дела:
Есть makefile со следующим содержанием:
Код: Выделить всё
CC = gcc
INCLUDES = -I/usr/include/mysql/
LIBS = -L/usr/lib64/mysql/
all: kursach.o
$(CC) -o kursach kursach.o $(LIBS)
kursach.o:kursach.c
$(CC) -c $(INCLUDES) kursach.c
.PHONY: clean
clean:
rm -f kursach kursach.oи собственно код самой программы:
Код: Выделить всё
#include <mysql.h>
#include <stdio.h>
main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "123321"; /* set me first */
char *database = "mysql";
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
/* send SQL query */
if (mysql_query(conn, "show tables")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s \n", row[0]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
}при make all имеем следующее:
user@host
$~/codding/k$ make all
gcc -o kursach kursach.o -L/usr/lib64/mysql/
kursach.o: In function `main':
kursach.c:(.text+0x2f): undefined reference to `mysql_init'
kursach.c:(.text+0x6c): undefined reference to `mysql_real_connect'
kursach.c:(.text+0x7d): undefined reference to `mysql_error'
kursach.c:(.text+0xb7): undefined reference to `mysql_query'
kursach.c:(.text+0xc7): undefined reference to `mysql_error'
kursach.c:(.text+0xfc): undefined reference to `mysql_use_result'
kursach.c:(.text+0x134): undefined reference to `mysql_fetch_row'
kursach.c:(.text+0x14b): undefined reference to `mysql_free_result'
kursach.c:(.text+0x157): undefined reference to `mysql_close'
collect2: ld returned 1 exit status
make: *** [all] Ошибка 1
Если бы он говорил что не может найти mysql.h тогда понятны претензии компилятора...но ведь заголовочный файл находит...но как будто не находит этих функции, хотя они так есть...собственноручно проверил.
В чем загвозда??
при компиляции же чисто из консоли
user@host
$ lgcc -o kursach $(mysql_config --cflags) kursach.c $(mysql_config --libs)все вполне компилируется и работает.
на 90% уверен проблема в моей невнимательности...
прошу ткнуть носов в ошибку.
заранее спасибо