carloalexandre
(usa Debian)
Enviado em 16/06/2011 - 10:56h
Olá comunidade VOL,
um dos sistemas que eu mantenho passou a apresentar um erro quando precisa tratar arquivos maiores que 2Gb. É um servidor Intel com LinuxRedHat que é usado para converter um arquivo binário para texto e salvar as informações em um banco MySQL. Um colega recomendou incluir a declaração "#define _FILE_OFFSET_BITS 64" no início do programa. Eu fiz isso mas quando tento compilar o programa o gcc apresenta a resposta abaixo. Os erros "undefined reference" são para rotinas que estão incluídas no início do código e no final aparece o erro "collect2: ld returned 1 exit status".
Não tenho familiaridade com o ambiente de desenvolvimento em C e estou bem perdido. O que é preciso para compilar esse programa?
Muito Obrigado!
calex@hyperion:~/source$ gcc processa_gsm_bin.c -o teste
/tmp/ccoKTZGI.o: In function `db_load':
processa_gsm_bin.c:(.text+0x160a): undefined reference to `f_inic_etapa'
...
processa_gsm_bin.c:(.text+0x17fc): undefined reference to `f_fim_etapa'
/tmp/ccoKTZGI.o: In function `main':
processa_gsm_bin.c:(.text+0x1ac3): undefined reference to `f_inic_etapa'
...
processa_gsm_bin.c:(.text+0x1f94): undefined reference to `f_fim_status'
collect2: ld returned 1 exit status
calex@hyperion:~/source$
calex@hyperion:~/source$ ls *.h
Commons.h TBinaryFileParser.h THPSDFOAFileParser.h trap.h TType.h
mymysql.h TDecoder.h THPSDFOAFileTypes.h TTypeDecoderRegistry.h
calex@hyperion:~/source$ head -20 processa_gsm_bin.c
/* Author: Marcio Dias
Brief: Converte um arquivo binario em um arquivo text separando os campos do HLR
*/
/* $id $*/
#define _FILE_OFFSET_BITS 64
#include <dirent.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>
#include <mysql/mysql.h>
#include "mymysql.h"
#include "Commons.h"
#include "THPSDFOAFileParser.h"
#include "TTypeDecoderRegistry.h"
#include "THPSDFOAFileTypes.h"