GCC for beginners: Difference between revisions
(Add introduction and Makefiles question) |
|||
(One intermediate revision by one other user not shown) | |||
Line 43: | Line 43: | ||
to it. If I'm not administrator I might put some header files in some other |
to it. If I'm not administrator I might put some header files in some other |
||
directory (/home/theo/myincludes say) and use a -isystem to refer to them. |
directory (/home/theo/myincludes say) and use a -isystem to refer to them. |
||
{{GCC and GCCSDK pages}} |
|||
[[Category: Documentation]] |
Latest revision as of 16:00, 4 November 2011
This page is intended to be a collection of tips for those who are new to GCC on RISC OS, perhaps those who are used to Acorn C/C++. For a tutorial, see also the GCC tutorial.
Makefiles
See this question in the RISC OS C Programming FAQ.
Header file naming
On Unix, there's a given hierarchy of header files. So when you install the C library header files (equivalent to UnixLib) they go in /usr/include. So you get files like:
/usr/include/stdio.h /usr/include/string.h /usr/include/setjmp.h /usr/include/time.h /usr/include/sys/time.h /usr/include/sys/quota.h /usr/include/net/ethernet.h
When you install other packages they slot into this structure. For example the GPIB driver library I've been using today lives in:
/usr/include/gpib/ib.h
and if you install the Linux kernel headers you get things like:
/usr/include/linux/adfs_fs.h (the ADFS driver for Linux) /usr/include/linux/joystick.h
and so on.
The name inside the pointy brackets <> is effectively the path without /usr/include on the front. So
#include <sys/types.h>
refers to
/usr/include/sys/types.h
while
#include <bits/types.h>
refers to
/usr/include/bits/types.h
They're different files, and they have different pathnames (in fact, in glibc on Linux, sys/types.h has a #include <bits/types.h>). In the list above notice there are two time.h files - you'd refer to the first one as plain <time.h> and the second as <sys/time.h>
Of course it's slightly more complicated than that - /usr/include is a system-wide path so you need to be the machine administrator to add things to it. If I'm not administrator I might put some header files in some other directory (/home/theo/myincludes say) and use a -isystem to refer to them.
GCC and GCCSDK pages |
GCC under RISC OS GCC for RISC OS, GCC tutorial, GCC common switches, GCC for beginners, UnixLib, ELFLoader |