Hi, I was trying to install tesseract on my Debian Lenny (Intel 32
bits) and I got the ./configure ok (it tells I can run make), the
lines with "no", "missing" and the config flags were :
checking for cl.exe... no
checking whether we are cross compiling... no
checking for working aclocal-1.4... missing
checking for working automake-1.4... missing
checking whether to enable maintainer-specific portions of
Makefiles... no
checking whether byte ordering is bigendian... no
checking allheaders.h usability... no
checking allheaders.h presence... no
checking for allheaders.h... no
checking for _Bool... no
checking for special C compiler options needed for large files... no
checking for _LARGE_FILES value needed for large files... no
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
setting LIBTIFF_CFLAGS=
setting LIBTIFF_LIBS=-ltiff
config.status: executing default-1 commands
When I run make, the following problems arise:
scrollview.cpp: In member function 'SVEvent* SVEvent::copy()':
scrollview.cpp:62: error: 'strlen' was not declared in this scope
scrollview.cpp:63: error: 'strncpy' was not declared in this scope
scrollview.cpp: In static member function 'static void*
ScrollView::MessageReceiver(void*)':
scrollview.cpp:89: error: 'strlen' was not declared in this scope
scrollview.cpp:107: error: 'strncpy' was not declared in this scope
scrollview.cpp: In static member function 'static void*
ScrollView::StartEventHandler(void*)':
scrollview.cpp:302: error: 'INT_MAX' was not declared in this scope
scrollview.cpp: In member function 'char* ScrollView::ShowInputDialog
(const char*)':
scrollview.cpp:689: error: 'strlen' was not declared in this scope
scrollview.cpp:690: error: 'strncpy' was not declared in this scope
scrollview.cpp: In member function 'char* ScrollView::AddEscapeChars
(const char*)':
scrollview.cpp:795: error: 'strchr' was not declared in this scope
scrollview.cpp:800: error: 'strncpy' was not declared in this scope
scrollview.cpp:807: error: 'strlen' was not declared in this scope
scrollview.cpp:807: error: 'strncpy' was not declared in this scope
make[3]: *** [scrollview.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive-am] Error 2
But I know I have the gcc and g++ working properly because I compiled
and run several programs and libraries as OpenCV and I made my own
test programs and they work.
I just made a test program to check the first errors:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[20], str2[20];
sprintf( str1,"test alfa");
printf( "sprintf-- str1= %s\n", str1 );
strcpy( str2, str1 );
printf( "str1= %s strcpy(str2, str1)=> str2= %s\n", str1, str2 );
printf( "strlen(str1)= %d\n", strlen(str1) );
sprintf( str1,"probe it's wrong");
printf( "sprintf-- str1= %s\n", str1 );
strncpy( str2, str1,3 );
str2[3] = 0;
printf( "str1= %s strncpy(str2, str1, 3)=> str2= %s\n", str1, str2 );
return 0;
}
And compiled, linked and run properly (terminal output):
g++ checkstrings.cpp -o checkstrings_gpp
adrian@zw:~/temp/tesseract-2.03$ ./checkstrings_gpp
sprintf-- str1= test alfa
str1= test alfa strcpy(str2, str1)=> str2= test alfa
strlen(str1)= 9
sprintf-- str1= probe it's wrong
str1= probe it's wrong strncpy(str2, str1, 3)=> str2= pro
but, if I change g++ by gcc, ( I guess the explanation is:
http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Invoking-G_002b_002b.html#Invoking-G_002b_002b
), it doesn't link. terminal output:
/tmp/ccAUuji4.o:(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
collect2: ld returned 1 exit status
If I link it with gcc, and the source file with extension .c, it also
works properly.
Then, I guess my gcc and g++ are properly installed and working, and,
as I can see in the configure information, also detected.
Then I don't know what to do to get tesseract linked and working.
Should I modify some configuration file?
Thanks in advance for any help.
Adrian