stdlib.h No such file or directory

I just did a zypper dup (Tumbleweed)
now when I try to build LibreCAD from Qt Creator I get:

/usr/include/c++/6/cstdlib:75: error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
                         ^

/usr/include/c++/6/cstdlib

But it looks like the path doesn’t include ‘cstdlib’ on this computer.
/usr/include/c++/6/stdlib.h

‘libstdc++6-devel-gcc6’ is already installed.

find /usr/include -name stdlib

/usr/include/bits/stdlib-bsearch.h
/usr/include/bits/stdlib-float.h
/usr/include/bits/stdlib-ldbl.h
/usr/include/bits/stdlib.h
/usr/include/c++/5/tr1/cstdlib
/usr/include/c++/5/tr1/stdlib.h
/usr/include/c++/5/cstdlib
/usr/include/c++/v1/cstdlib
/usr/include/c++/v1/stdlib.h
/usr/include/c++/6/cstdlib
/usr/include/c++/6/stdlib.h
/usr/include/c++/6/tr1/cstdlib
/usr/include/c++/6/tr1/stdlib.h
/usr/include/boost/compatibility/cpp_c_headers/cstdlib
/usr/include/boost/config/stdlib
/usr/include/boost/config/select_stdlib_config.hpp
/usr/include/boost/cstdlib.hpp
/usr/include/freetype2/freetype/config/ftstdlib.h
/usr/include/stdlib.h

Is there some file that is indicating the old path?

You probably need to install the “Base development” pattern, and possibly the “kernel-devel” package if you are expecting to compile software.

I’ve built this program many times without this problem.

I’m not sure what package you are referring to,
and the search feature seems to be broken at
https://software.opensuse.org

I found the ‘Base development’ pattern in Software Management;
I already had it installed.

I also have ‘kernel-devel’ installed.


// Need to ensure this finds the C library's <stdlib.h> not a libstdc++
// wrapper that might already be installed later in the include search path.
#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
#include_next <stdlib.h>
#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS

What package has the “C library’s <stdlib.h>”?

It looks like this is a known issue with gcc-6.1

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70936

Replacing #include_next with #include fixes the problem.

However, I am not exactly clear about whether it is these headers (cstdlib and cmath currently, there might be more) that are the problem.
In my point of view, it is the inversion of C and C++ header paths that is the problem.

This is caused by --with-gxx-include-dir

Configured with: /home/jwakely/src/gcc/gcc-6/configure --prefix=/tmp/6 --with-gxx-include-dir=/tmp/6/include/c++/6.1.1 …]

https://readlist.com/lists/gcc.gnu.org/gcc-help/7/36244.html

Here removing --with-gxx-include-dir as well as
--enable-version-specific-runtime-libs fixed the problem.

Any ideas how to use this information?

ravas wrote:

>
>
> I just did a zypper dup (Tumbleweed)
> now when I try to build LibreCAD from Qt Creator I get:
>
>
> Code:
> --------------------
> /usr/include/c++/6/cstdlib:75: error: stdlib.h: No such file or
> directory
> #include_next <stdlib.h>
> ^
>
> /usr/include/c++/6/cstdlib
>
> --------------------

Try with

%qmake5 -r QMAKE_DEFAULT_INCDIRS= \

This is what i done in spec-files.

Regards
Eric

I added “QMAKE_DEFAULT_INCDIRS=\”
to the qmake arguments in Creator and it built!

Thank you!

On Sat 16 Jul 2016 04:36:01 PM CDT, ravas wrote:

I added “QMAKE_DEFAULT_INCDIRS=\”
to the qmake arguments in Creator and it built!

Thank you!

Hi
Just a FYI you can create a file in the build location
called .qmake.cache for all your additional flags and overrides

eg;


vi .qmake.cache
CONFIG += release
QMAKE_DEFAULT_INCDIRS +=
QMAKE_LRELEASE="/usr/bin/lrelease"

http://doc.qt.io/qt-5/qmake-environment-reference.html


Cheers Malcolm °¿° LFCS, SUSE Knowledge Partner (Linux Counter #276890)
openSUSE Leap 42.1|GNOME 3.16.2|4.1.26-21-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

Thanks :-]