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

From Linuxnetworks
Jump to: navigation, search
(cannot create executables)
 
(header not found)
Line 16: Line 16:
 
  apt-get update  
 
  apt-get update  
 
  apt-get install build-essential
 
  apt-get install build-essential
 +
 +
== 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 [[OpenDBX/Setup/Manual_builds#Distribution_specific|list of non-standard directories]] available.

Revision as of 13:45, 20 December 2008

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 doesn't have installed build-essential package. To fix this you must:

apt-get update 
apt-get install build-essential

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.