lunes, 23 de febrero de 2009

Creación LIB TMySQL

Bueno, seguimos con el proceso.

Requerimientos:
Descargar MYSQL SERVER
Descargar constribución TMYSQL

Bueno, también el xHarbour y el Borland.

Ya descargadas las herramientas, pues pasamos al mero, mero, meoyo del asunto.

Ya instalado el server mysql, localizar la carpeta de los include's, donde se encuentran los headers necesarios para compilar la tmysql.

Supongamos que tenemos instalado las herramientas en:

Servidor mysql:
y:\mysql
xHarbour:
y:\xharbour
Borland C
y:\bcc55

ya localizada la carpeta, procederemos a modificar el bat de compilación. Antes listo el contenido de la carpeta mysql de las contribuciones.

Descargar imagen

El contenido del archivo BAT es el siguiente:

@echo off
rem
rem $Id: make_b32.bat,v 1.2 2006/09/30 17:47:20 areainformatica Exp $
rem

if "%1" == "clean" goto CLEAN
if "%1" == "CLEAN" goto CLEAN

:BUILD

make -fmakefile.bc %1 %2 %3 > make_b32.log
if errorlevel 1 goto BUILD_ERR

:BUILD_OK

copy ..\..\lib\b32\mysql.lib ..\..\lib\*.* > nul
goto EXIT

:BUILD_ERR

notepad make_b32.log
goto EXIT

:CLEAN

if exist ..\..\lib\b32\mysql.lib del ..\..\lib\b32\mysql.lib
if exist ..\..\lib\b32\mysql.bak del ..\..\lib\b32\mysql.bak
if exist ..\..\obj\b32\mysql.obj del ..\..\obj\b32\mysql.obj
if exist ..\..\obj\b32\tsqlbrw.c del ..\..\obj\b32\tsqlbrw.c
if exist ..\..\obj\b32\tmysql.c del ..\..\obj\b32\tmysql.c
if exist ..\..\obj\b32\tsqlbrw.obj del ..\..\obj\b32\tsqlbrw.obj
if exist ..\..\obj\b32\tmysql.obj del ..\..\obj\b32\tmysql.obj
if exist ..\..\obj\b32\mysqlrdd.obj del ..\..\obj\b32\mysqlrdd.obj
if exist ..\..\obj\b32\mysqlrdd.c del ..\..\obj\b32\mysqlrdd.c
goto EXIT

:EXIT


Y debe de quedar:

@echo off
rem
rem $Id: make_b32.bat,v 1.2 2006/09/30 17:47:20 areainformatica Exp $
rem

if "%1" == "clean" goto CLEAN
if "%1" == "CLEAN" goto CLEAN

:BUILD

y:\bcc55\bin\make -fmakefile.bc %1 %2 %3 > make_b32.log
if errorlevel 1 goto BUILD_ERR

:BUILD_OK

copy y:\xharbour\lib\mysql.lib y:\xharbour\lib > nul
goto EXIT

:BUILD_ERR

notepad make_b32.log
goto EXIT

:EXIT


El contenido del archivo makefile.bc

#
# $Id: makefile.bc,v 1.2 2006/09/30 17:47:20 areainformatica Exp $
#

# makefile for Borland C/C++ 32 bits
# Building of mysql.lib - Harbour API to mySQL

INCLUDE_DIR = ..\..\include

BIN_DIR = ..\..\bin\b32
OBJ_DIR = ..\..\obj\b32
LIB_DIR = ..\..\lib\b32

$(LIB_DIR)\mysql.lib : \
$(OBJ_DIR)\mysqlrdd.obj \
$(OBJ_DIR)\tmysql.obj \
$(OBJ_DIR)\tsqlbrw.obj \
$(OBJ_DIR)\mysql.obj

$(OBJ_DIR)\mysqlrdd.c : mysqlrdd.prg
$(OBJ_DIR)\mysqlrdd.obj : $(OBJ_DIR)\mysqlrdd.c
$(OBJ_DIR)\tmysql.c : tmysql.prg
$(OBJ_DIR)\tmysql.obj : $(OBJ_DIR)\tmysql.c
$(OBJ_DIR)\tsqlbrw.c : tsqlbrw.prg
$(OBJ_DIR)\tsqlbrw.obj : $(OBJ_DIR)\tsqlbrw.c
$(OBJ_DIR)\mysql.obj : mysql.c

.c.obj:
bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -DHB_OS_WIN_32_USED -o$@ $<
tlib $(LIB_DIR)\mysql.lib -+$@,,

.prg.c:
$(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@

Y debe de quedar de la siguiente manera:

#
# $Id: makefile.bc,v 1.2 2006/09/30 17:47:20 areainformatica Exp $
#

# makefile for Borland C/C++ 32 bits
# Building of mysql.lib - Harbour API to mySQL

INCLUDE_DIR = y:\xharbour\include;y:\mysql\include

BIN_DIR = y:\xharbour\bin
OBJ_DIR = .\obj
LIB_DIR = y:\xharbour\lib


$(LIB_DIR)\mysql.lib : \
$(OBJ_DIR)\mysqlrdd.obj \
$(OBJ_DIR)\tmysql.obj \
$(OBJ_DIR)\tsqlbrw.obj \
$(OBJ_DIR)\mysql.obj

$(OBJ_DIR)\mysqlrdd.c : mysqlrdd.prg
$(OBJ_DIR)\mysqlrdd.obj : $(OBJ_DIR)\mysqlrdd.c
$(OBJ_DIR)\tmysql.c : tmysql.prg
$(OBJ_DIR)\tmysql.obj : $(OBJ_DIR)\tmysql.c
$(OBJ_DIR)\tsqlbrw.c : tsqlbrw.prg
$(OBJ_DIR)\tsqlbrw.obj : $(OBJ_DIR)\tsqlbrw.c
$(OBJ_DIR)\mysql.obj : mysql.c

.c.obj:
y:\bcc55\bin\bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -DHB_OS_WIN_32_USED -o$@ $<
y:\bcc55\bin\tlib $(LIB_DIR)\mysql.lib -+$@,,

.prg.c:
$(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@


Después de esas modificaciones, debemos de darle dos click al BAT y listo, debe de crear la lib mysql.lib en la carpeta LIB donde instalamos xHarbour.

Hasta ahí podremos decir que tenemos creada la librería.

Proseguimos....

Para utilizar la LIB primero que nada debemos de hacer una importación de la lib libmysql.dll lo cual se hace con lo siguiente:

y:\bcc55\bin\implib libmysql.lib y:\mysql\bin\libmysql.dll

la libmysql.dll hay que localizar y ver que la ruta que he colocado sea la correcta según la instalación que hayan hecho.

la librería resultante, tendrá que adicionarse como librerías de tercero al proyecto que estén haciendo.

Eso quiere decir que son dos LIB que estaríamos adicionando a nuestro proyecto.
1.- mysql.lib
2.- libmysql.lib

y el archivo libmysql.dll, lo debemos de copiar a la carpeta donde tengamos nuestro exe ya generado, esto sería para que no tengamos un error en la ejecución, pues mandaría el error de DLL no existe.

Espero que con esta explicación puedan crear la LIB y hacer sus respectivas pruebas.

Como siempre, espero sus comentarios y/o dudas

Saludos
William Morales

3 comentarios:

  1. William soy un ignorante en la creacion de librerias y dlls, puedes explicarme como y para que se hace este paso, necesito usar la libreria mysql.lib pero no se donde descargarla o hacerla, puedes echarme una manita?

    ResponderEliminar
  2. William al intentar generar la libreria me genera un archivo en notepad con lo siguiente;

    MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
    Error makefile.bc 30: Command syntax error
    Error makefile.bc 31: Redefinition of target 'c:\xharbour\lib\mysql.lib'
    Error makefile.bc 31: Command syntax error
    Error makefile.bc 33: Command syntax error
    *** 4 errors during make ***

    Puedes ayudarme ?
    Gracias

    ResponderEliminar
  3. Exactamente eso mismo me pasa a mi, alguien nos puede ayudar

    ResponderEliminar