Difference between revisions of "OpenDBX/Setup/Common problems"

From Linuxnetworks
Jump to: navigation, search
(readline.h not found)
(Warning running tests in PostgreSQL)
 
(One intermediate revision by one other user not shown)
Line 36: Line 36:
  
 
The readline header and library is required when building the default OpenDBX package but not for the core library itself. If you don't need the odbx-sql utility (the command line tool for executing statements interactively or as batch), you can disable compilation of this part and therefore don't need the readline files too. In this case, please have a look at [[OpenDBX/Setup/Manual_builds#Without_utilities|manual builds]] section.
 
The readline header and library is required when building the default OpenDBX package but not for the core library itself. If you don't need the odbx-sql utility (the command line tool for executing statements interactively or as batch), you can disable compilation of this part and therefore don't need the readline files too. In this case, please have a look at [[OpenDBX/Setup/Manual_builds#Without_utilities|manual builds]] section.
 +
 +
 +
== Backslashes in PostgreSQL ==
 +
 +
Depending on your PostgreSQL configuration you may have the following warnings when running the OpenDBX tests:
 +
 +
WARNING:  nonstandard use of \\ in a string literal
 +
LINE 1: SELECT * FROM odbxtest WHERE col = 'a''''\\''b'
 +
                                                ^
 +
HINT:  Use the escape string syntax for backslashes, e.g., E'\\'.
 +
 +
The problem is a non-standard option in the postgresql.conf which can be changed by setting
 +
 +
standard_conforming_strings = on
 +
 +
in postgresql.conf. For more details you can have a look at a forum comment on
 +
[http://dbaspot.com/forums/postgresql/251026-many-warning-pg-logs-nonstandard-use-string-literalat-character.html dbaspot.com] for details.

Latest revision as of 21:10, 29 September 2009

C compiler cannot create executables

checking for gcc... gcc
checking for C compiler default output file name... 
configure: error: C compiler cannot create executables
See `config.log' for more details.

And if you see config.log you see:

crt1.o: No such file: No such file or directory

You probably don't have the build-essential package installed. To fix this you must:

apt-get update 
apt-get install build-essential

If you get the crt1.o error on Solaris, you have to install the SUNWarc (Lint Libraries (usr)) package:

pkgadd -d /cdrom/cdrom0/Solaris_10/Product/ SUNWarc

Header not found

./configure will search in your computer if you have all the necessary things for compilation. If somethins is missing, you will get an error message like this:

configure: error: <header-file> header not found

This is because it didn't find the header file ( .h ) of an necessary library. In all major Linux/Unix distributions, the header files for libraries are in the development package of that library and its name contains either "-dev" or "-devel". After installing the package, the header file should be available in the standard include path (/usr/include/). If it doesn't (e.g. the MySQL or PostgreSQL header are located in other directories in many distributions), you have to add the location to the CPPFLAGS environment variable like this:

CPPFLAGS="-I/usr/include/mysql" ./configure --with-backends="mysql"

For the major distributions, there's a list of non-standard directories available.

readline.h not found

The readline header and library is required when building the default OpenDBX package but not for the core library itself. If you don't need the odbx-sql utility (the command line tool for executing statements interactively or as batch), you can disable compilation of this part and therefore don't need the readline files too. In this case, please have a look at manual builds section.


Backslashes in PostgreSQL

Depending on your PostgreSQL configuration you may have the following warnings when running the OpenDBX tests:

WARNING:  nonstandard use of \\ in a string literal
LINE 1: SELECT * FROM odbxtest WHERE col = 'a''\\b' 
                                               ^
HINT:  Use the escape string syntax for backslashes, e.g., E'\\'.

The problem is a non-standard option in the postgresql.conf which can be changed by setting

standard_conforming_strings = on

in postgresql.conf. For more details you can have a look at a forum comment on dbaspot.com for details.