title: stdlib.h: no such file or directory
body: <p>I am using various stdlib functions like srand(), etc. I have the line</p>
  
  <pre><code>#include &lt;stdlib.h&gt;
  </code></pre>
  
  <p>at the top of my code.</p>
  
  <p>I entered this on the command line:</p>
  
  <pre><code># find / -name stdlib.h
  
  find: `/home/dmurvihill/.gvfs: permission denied
  /usr/include/stdlib.h
  /usr/include/bits/stdlib.h
  </code></pre>
  
  <p>So, stdlib.h is clearly in /usr/include.</p>
  
  <p>My preprocessor:</p>
  
  <pre><code># gcc -print-prog-name=cc1
  
  /usr/libexec/gcc/x86_64-redhat-linux/4.5.1/cc1
  </code></pre>
  
  <p>My preprocessor's default search path:</p>
  
  <pre><code># /usr/libexec/gcc/x86_64-redhat-linux/4.5.1/cc1 -v
  
  ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.5.1/include-fixed"
  ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../x86_64-redhat-linux/include"
  #include "..." search starts here:
  #include &lt;...&gt; search starts here:
  /usr/local/include
  /usr/lib/gcc/x86_64-redhat-linux/4.5.1/include
  /usr/include
  End of search list.
  </code></pre>
  
  <p>So, stdlib.h is clearly in /usr/include, which is most definitely supposed to be searched by my preprocessor, but I still get this error!</p>
  
  <pre><code>/path/to/cpa_sample_code_main.c:15:20: fatal error: stdlib.h: No such file or directory
  compilation terminated
  </code></pre>
  
  <p><strong>Update</strong></p>
  
  <p>A program I wrote to test this code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;linux/time.h&gt;
  
  int main()
  {
      printf("Hello, World!\n");
      printf("Getting time...\n");
      time_t seconds;
      time(&amp;seconds);
      printf("Seeding generator...\n");
      srand((unsigned int)seconds);
      printf("Getting random number...\n");
      int value = rand();
      printf("It is %d!",value);
      printf("Goodbye, cruel world!");
      return 0;
  }
  </code></pre>
  
  <p>The command</p>
  
  <pre><code>gcc -H -v -fsyntax-only stdlib_test.c
  </code></pre>
  
  <p>output</p>
  
  <pre><code>Using built-in specs.
  COLLECT_GCC=gcc
  COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.5.1/lto-wrapper
  Target: x86_64-redhat-linux
  Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,lto --enable-plugin --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
  Thread model: posix
  gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) 
  COLLECT_GCC_OPTIONS='-H' '-v' '-fsyntax-only' '-mtune=generic' '-march=x86-64'
   /usr/libexec/gcc/x86_64-redhat-linux/4.5.1/cc1 -quiet -v -H /CRF_Verify/stdlib_test.c -quiet -dumpbase stdlib_test.c -mtune=generic -march=x86-64 -auxbase stdlib_test -version -fsyntax-only -o /dev/null
  GNU C (GCC) version 4.5.1 20100924 (Red Hat 4.5.1-4) (x86_64-redhat-linux)
      compiled by GNU C version 4.5.1 20100924 (Red Hat 4.5.1-4), GMP version 4.3.1, MPFR version 2.4.2, MPC version 0.8.1
  GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
  ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.5.1/include-fixed"
  ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../x86_64-redhat-linux/include"
  #include "..." search starts here:
  #include &lt;...&gt; search starts here:
   /usr/local/include
   /usr/lib/gcc/x86_64-redhat-linux/4.5.1/include
   /usr/include
  End of search list.
  GNU C (GCC) version 4.5.1 20100924 (Red Hat 4.5.1-4) (x86_64-redhat-linux)
      compiled by GNU C version 4.5.1 20100924 (Red Hat 4.5.1-4), GMP version 4.3.1, MPFR version 2.4.2, MPC version 0.8.1
  GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
  Compiler executable checksum: ea394b69293dd698607206e8e43d607e
  . /usr/include/stdio.h
  .. /usr/include/features.h
  ... /usr/include/sys/cdefs.h
  .... /usr/include/bits/wordsize.h
  ... /usr/include/gnu/stubs.h
  .... /usr/include/bits/wordsize.h
  .... /usr/include/gnu/stubs-64.h
  .. /usr/lib/gcc/x86_64-redhat-linux/4.5.1/include/stddef.h
  .. /usr/include/bits/types.h
  ... /usr/include/bits/wordsize.h
  ... /usr/include/bits/typesizes.h
  .. /usr/include/libio.h
  ... /usr/include/_G_config.h
  .... /usr/lib/gcc/x86_64-redhat-linux/4.5.1/include/stddef.h
  .... /usr/include/wchar.h
  ... /usr/lib/gcc/x86_64-redhat-linux/4.5.1/include/stdarg.h
  .. /usr/include/bits/stdio_lim.h
  .. /usr/include/bits/sys_errlist.h
  . /usr/include/stdlib.h
  .. /usr/lib/gcc/x86_64-redhat-linux/4.5.1/include/stddef.h
  .. /usr/include/bits/waitflags.h
  .. /usr/include/bits/waitstatus.h
  ... /usr/include/endian.h
  .... /usr/include/bits/endian.h
  .... /usr/include/bits/byteswap.h
  ..... /usr/include/bits/wordsize.h
  .. /usr/include/sys/types.h
  ... /usr/include/time.h
  ... /usr/lib/gcc/x86_64-redhat-linux/4.5.1/include/stddef.h
  ... /usr/include/sys/select.h
  .... /usr/include/bits/select.h
  ..... /usr/include/bits/wordsize.h
  .... /usr/include/bits/sigset.h
  .... /usr/include/time.h
  .... /usr/include/bits/time.h
  ... /usr/include/sys/sysmacros.h
  ... /usr/include/bits/pthreadtypes.h
  .... /usr/include/bits/wordsize.h
  .. /usr/include/alloca.h
  ... /usr/lib/gcc/x86_64-redhat-linux/4.5.1/include/stddef.h
  . /usr/include/linux/time.h
  .. /usr/include/linux/types.h
  ... /usr/include/asm/types.h
  .... /usr/include/asm-generic/types.h
  ..... /usr/include/asm-generic/int-ll64.h
  ...... /usr/include/asm/bitsperlong.h
  ....... /usr/include/asm-generic/bitsperlong.h
  ... /usr/include/linux/posix_types.h
  .... /usr/include/linux/stddef.h
  .... /usr/include/asm/posix_types.h
  ..... /usr/include/asm/posix_types_64.h
  In file included from /CRF_Verify/stdlib_test.c:3:0:
  /usr/include/linux/time.h:9:8: error: redefinition of ‘struct timespec’
  /usr/include/time.h:120:8: note: originally defined here
  /usr/include/linux/time.h:15:8: error: redefinition of ‘struct timeval’
  /usr/include/bits/time.h:75:8: note: originally defined here
  Multiple include guards may be useful for:
  /usr/include/asm/posix_types.h
  /usr/include/bits/byteswap.h
  /usr/include/bits/endian.h
  /usr/include/bits/select.h
  /usr/include/bits/sigset.h
  /usr/include/bits/stdio_lim.h
  /usr/include/bits/sys_errlist.h
  /usr/include/bits/time.h
  /usr/include/bits/typesizes.h
  /usr/include/bits/waitflags.h
  /usr/include/bits/waitstatus.h
  /usr/include/gnu/stubs-64.h
  /usr/include/gnu/stubs.h
  /usr/include/wchar.h
  </code></pre>