I just found out that the <stdlib.h>
and <stdio.h>
headers are located in the /usr/include
folder in Ubuntu server, but I don't find sys/types.h
.
And I start to suspect the compiler won't actually use the header file in the /usr/include
folder.
Is this true, and where is the file located?
The sys/types. h header file defines a collection of typedef symbols and structures.
On Linux, types. h should be in /usr/include/sys/types.
My Debian box (and hopefully Ubuntu haven't butchered it too much in their zeal) has it in /usr/include/sys/types.h
.
Your best bet is to execute:
find /usr/include -name types.h find / -name types.h # if not found by one above
However, keep in mind that the development stuff may not even be installed on a server. Unless it's a server for a compiler farm, it wouldn't surprise me if the compiler and a bunch of other stuff was not part of the default install.
If the compiler is locating it somewhere and you just don't know where, you can use something like:
echo "#include <sys/types.h>" | gcc -E -x c - | grep /types.h
to find out where it's getting it from.
That gcc
command line:
-E
);-x c
); and-
), in this case from the echo
statement.The final grep
just strips out the unimportant lines leaving the ones that are likely to contain the location of the included file.
The file sys/types.h
is located at the /usr/include/sys/types.h
if u get this kind of Fatal Error:
.../linux/linux_types.h:146:38: fatal error: /usr/include/sys/types.h: No such file or directory
Fix by using the following code:
sudo apt-get install build-essential flex libelf-dev libc6-dev-amd64 binutils-dev libdwarf-dev
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With