Hi Johnyburd,
Welcome to the forums.
You forgot to include the exact error messages you encountered. We need those to be able to reliably help you. Please consider all the information we could find useful and include it in your topics.
Your error is most likely that you don't have the 'in' and 'out' family of functions. These are simply C functions that invoke the special x86 instructions 'in' and 'out' that communicate with IO ports. You need to provide these functions yourself. The C programming language has no concept of IO port, which means you need to emit the special x86 instructions normally. You do this through inline assembly, which is a way of emitting assembly directly from C. You can find examples (including in and out) at this wiki article:
http://wiki.osdev.org/Inline_Assembly/Examples
Note that the compiler is unable to understand inline assembly. It just sees an asm() statement with a string inside it, and some parameters that describe what the string means and what input/output registers are used. If the description of the assembly itself is wrong, then the compiler will misunderstand the intent of the inline assembly statement. This can have very nasty consequences. For instance, the compiler might assume that a specific register is not used by the inline assembly and it keeps an important value in it, but your inline assembly trashes that register. This results in a bug the following code that assumed the important value was intact - this could result in a crash or silent corruption. Additionally, the compiler may think the inline assembly does nothing and just deletes it with no warning. You should carefully study inline assembly before writing your own - otherwise your code may start to malfunction the moment you enable optimizations because you lied to the compiler.
"some header is set up wrong" - this sounds like you don't have much experience with C. I would recommend getting more intimate with the language quick, because you really have to understand how all this works. I assume you are already familiar with assembly and registers, otherwise this is a really really good time to learn all this.
You appear to be following a tutorial from another website. There is no problem with that, but you may wish to have a look at this website's recommended tutorial for getting started:
http://wiki.osdev.org/Bare_Bones - Note in particular that we recommend the use of a cross-compiler, so you may well wish to set up one of these (if you haven't already) because this puts you in control of the compiler with a known target, rather than using a compiler that doesn't know it is producing a wholly new operating system.