Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Im trying to locally install a program which is written in C++. I have downloaded the program and am attempting to use the "make" command to compile the program as the programs instructions dictate. However when I do I get this error:

/usr/include/stdc-predef.h:30:26: fatal error: bits/predefs.h: No such file or directory 
compilation terminated.

Looking around on the internet some people seem to address this problem by

 sudo apt-get install libc6-dev-i386

I checked to see if this package was installed and it was not. When I try to install it I get

E: Unable to locate package libc6-dev-i386 

I have already run

sudo apt get update   

Im sure this is a rookie question but any help is appreciated, I'm running 13.10 32-bit.

UPDATE: I've tried other suggestions I've found on similar error. All I have managed is a different but similar error. Here is what I get.

Geoffrey@Geoffrey-Latitude-E6400:/usr/local/src/trinityrnaseq_r2013_08_14$ make
Using gnu compiler for Inchworm and Chrysalis
cd Inchworm && (test -e configure || autoreconf) \
                && ./configure --prefix=`pwd`  && make install
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for g++... g++
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for library containing cos... none required
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
make[1]: Entering directory `/usr/local/src/trinityrnaseq_r2013_08_14/Inchworm'
Making install in src
make[2]: Entering directory `/usr/local/src/trinityrnaseq_r2013_08_14/Inchworm/src'
if g++ -DHAVE_CONFIG_H -I. -I. -I..    -pedantic -fopenmp -Wall -Wextra -Wno-long-long -Wno-deprecated -m64 -g -O2 -MT Fasta_entry.o -MD -MP -MF ".deps/Fasta_entry.Tpo" -c -o Fasta_entry.o Fasta_entry.cpp; \
then mv -f ".deps/Fasta_entry.Tpo" ".deps/Fasta_entry.Po"; else rm -f ".deps/Fasta_entry.Tpo"; exit 1; fi
In file included from Fasta_entry.hpp:4:0,
             from Fasta_entry.cpp:1:
/usr/include/c++/4.8/string:38:28: fatal error: bits/c++config.h: No such file or directory
#include <bits/c++config.h>
compilation terminated.
make[2]: *** [Fasta_entry.o] Error 1
make[2]: Leaving directory `/usr/local/src/trinityrnaseq_r2013_08_14/Inchworm/src'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/trinityrnaseq_r2013_08_14/Inchworm'
make: *** [inchworm] Error 2
share|improve this question
This file is found in package libc6-dev. The i386 part is unnecessary since you're already running a 32-bit environment, but would be needed for compiling 32-bit applications on a 64-bit host. You should install the package build-essential which depends on this and a few other fundamental necessities for compiling C/C++ code. – chronitis Oct 30 '13 at 9:59
Thanks for your reply. I checked and have libc6-dev and build-essential installed. However I still have my original problem and get the predefs.h error when I try and install the program I want to use. – G_T Oct 30 '13 at 19:37
The latter error (bits/c++config.h) suggests you need the C++ stdlib headers (libstdc++-4.8-dev). Unfortunately the tarball doesn't seem to include a list of dependencies or a global configure file so it's a bit hard to know what other requirements might be lurking. – chronitis Nov 1 '13 at 19:43

With Ubuntu 13.10 amd64,
the problem /usr/include/stdc-predef.h:30:26: fatal error: bits/predefs.h: No such file or directory compilation terminated. has been solved after:

$ sudo apt-get install build-essential
$ sudo apt-get install libc6-dev-i386
$ sudo apt-get install g++-4.8-multilib
share|improve this answer

I resolved this issue by changing the build target architecture. G++ 4.8.0 and on appears to have broken its multilib support, as referenced in their mailing lists. I have a 64-bit native machine, and attempting to compile in 32-bit results in an error. However, compiling in 64-bit works properly. I'll go over my laptop later on and see which packages I installed to get around this issue.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.