dmer 0 Denunciar post Postado Junho 16, 2008 Estou tentando fazer uma aplicação usando C e mysql no freebsd tenho mysql versao 4.x instalada sigo o makefile # This assumes the MySQL software is installed in /usr/local/mysql inc := /usr/local/mysql/include/mysql lib := /usr/local/mysql/lib CC := gcc CPPFLAGS := -I$(inc) -D_THREAD_SAFE -D_REENTRANT CFLAGS := -g -W -Wall LDFLAGS := -static # You can change -lmysqld to -lmysqlclient to use the # client/server library LDLIBS = -L$(lib) -lmysqld -lz -lm -lcrypt ifneq (,$(shell grep FreeBSD /COPYRIGHT 2>/dev/null)) # FreeBSD LDFLAGS += -pthread else # Assume Linux LDLIBS += -lpthread endif # This works for simple one-file test programs sources := $(wildcard *.c) objects := $(patsubst %c,%o,$(sources)) targets := $(basename $(sources)) all: $(targets) clean: rm -f $(targets) $(objects) *.coree o meu arquivo de test de conneção #include <mysql.h> #include <stdio.h> main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "meuusuario"; char *password = "minhasenha"; char *database = "db"; conn = mysql_init(NULL); /* Conecta a db */ if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } /* manda a query */ if (mysql_query(conn, "show tables")) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn); /* mostra resultado */ printf("MySQL Tables in mysql database:\n"); while ((row = mysql_fetch_row(res)) != NULL) printf("%s \n", row[0]); /* fecha connecao */ mysql_free_result(res); mysql_close(conn); }só que na hora de compilar ele fala que não acha as strings que estariam dentro do mysql.hveja o erro abaixo cc -O2 -fno-strict-aliasing -pipe wcslave.c -o wcslave /var/tmp//cc0e7yBM.o(.text+0xe): In function `main': : undefined reference to `mysql_init' /var/tmp//cc0e7yBM.o(.text+0x30): In function `main': : undefined reference to `mysql_real_connect' /var/tmp//cc0e7yBM.o(.text+0x45): In function `main': : undefined reference to `mysql_query' /var/tmp//cc0e7yBM.o(.text+0x55): In function `main': : undefined reference to `mysql_use_result' /var/tmp//cc0e7yBM.o(.text+0x7f): In function `main': : undefined reference to `mysql_fetch_row' /var/tmp//cc0e7yBM.o(.text+0x8f): In function `main': : undefined reference to `mysql_free_result' /var/tmp//cc0e7yBM.o(.text+0x97): In function `main': : undefined reference to `mysql_close' /var/tmp//cc0e7yBM.o(.text+0xa7): In function `main': : undefined reference to `mysql_error' *** Error code 1 -- Ou seja de alguma forma ele não esta lendo corretamente o .h ? Porque todas essas funções estao declaradas corretamente nele. Aguardo qualquer ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 16, 2008 tente incluir a windows.h pra ver! naum sei c vai resolver, + lembro de ter visto uma duvida parecida por aki e isso deu certo! []'s Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 16, 2008 Quit...É no freeBSD... Não ta faltando um diretório no include? Tipo mysql/mysql.h? Pelo menos na faculdade se eu for inventar de mexer com o postgres,tenho que incluir postgresql/postgres.h. Isso deve vir nos pacotes *-devel. http://www.vivaolinux.com.br/perguntas/ver...hp?codigo=44720 http://www.jsw4.net/info/listserv_archives...5/msg00171.html Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 16, 2008 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif vo ter q ficar + atento aos tópicos ;) Compartilhar este post Link para o post Compartilhar em outros sites
dmer 0 Denunciar post Postado Junho 16, 2008 Quit...É no freeBSD... Não ta faltando um diretório no include? Tipo mysql/mysql.h? Pelo menos na faculdade se eu for inventar de mexer com o postgres,tenho que incluir postgresql/postgres.h. Isso deve vir nos pacotes *-devel. http://www.vivaolinux.com.br/perguntas/ver...hp?codigo=44720 http://www.jsw4.net/info/listserv_archives...5/msg00171.html -- inc := /usr/local/mysql/include/mysql lib := /usr/local/mysql/lib não eles estão lah todos os arquivos veja conteudo do mysql -- errmsg.h my_list.h mysql_time.h keycache.h my_net.h mysql_version.h m_ctype.h my_no_pthread.h mysqld_error.h m_string.h my_pthread.h raid.h my_alloc.h my_semaphore.h sql_common.h my_config.h my_sys.h sql_state.h my_dbug.h my_xml.h sslopt-case.h my_dir.h mysql.h sslopt-longopts.h my_getopt.h mysql_com.h sslopt-vars.h my_global.h mysql_embed.h typelib.h -- e em lib/ libdbug.a libmysqlclient.la libmysqlclient_r.so.14 libheap.a libmysqlclient.so libmystrings.a libmerge.a libmysqlclient.so.14 libmysys.a libmyisam.a libmysqlclient_r.a libnisam.a libmyisammrg.a libmysqlclient_r.la libvio.a libmysqlclient.a libmysqlclient_r.so --- e para complicar + a situação se você olhar dentro do mysql.h ele contém todas as entradas -- em mysql.h -- MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so MYSQL * STDCALL mysql_init(MYSQL *mysql); --- MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, #define HAVE_MYSQL_REAL_CONNECT e por ai vai Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 16, 2008 libdbug.a libmysqlclient.la libmysqlclient_r.so.14libheap.a libmysqlclient.so libmystrings.a libmerge.a libmysqlclient.so.14 libmysys.a libmyisam.a libmysqlclient_r.a libnisam.a libmyisammrg.a libmysqlclient_r.la libvio.a libmysqlclient.a libmysqlclient_r.so Só vi libmysqlclient. Cadê a libmysqld que você usa no makefile? LDLIBS = -L$(lib) -lmysqld -lz -lm -lcrypt Compartilhar este post Link para o post Compartilhar em outros sites
dmer 0 Denunciar post Postado Junho 16, 2008 pode fechar o tópico voce me de uma boa ideia java . -L/usr/local/lib/mysql -lmysqlclient a string :P e foi grato Compartilhar este post Link para o post Compartilhar em outros sites