Difference between revisions of "OpenDBX/Setup/Common problems"
(Added "Warning running tests in PostgreSQL") |
(→Warning running tests in PostgreSQL) |
||
Line 38: | Line 38: | ||
− | == | + | == Backslashes in PostgreSQL == |
− | Depending on your PostgreSQL configuration you may have the following | + | Depending on your PostgreSQL configuration you may have the following warnings when running the OpenDBX tests: |
WARNING: nonstandard use of \\ in a string literal | WARNING: nonstandard use of \\ in a string literal | ||
LINE 1: SELECT * FROM odbxtest WHERE col = 'a''''\\''b' | LINE 1: SELECT * FROM odbxtest WHERE col = 'a''''\\''b' | ||
− | + | ^ | |
HINT: Use the escape string syntax for backslashes, e.g., E'\\'. | HINT: Use the escape string syntax for backslashes, e.g., E'\\'. | ||
− | The problem | + | The problem is a non-standard option in the postgresql.conf which can be changed by setting |
− | + | ||
− | + | ||
standard_conforming_strings = on | standard_conforming_strings = on | ||
− | in postgresql.conf | + | 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
Contents
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.