title: How do I enable the preprocessor in gcc assembly
body: <p>I am using the GCC like this:</p>
  
  <pre><code>gcc -std=gnu99 -fno-leading-underscore -m32 -c -o obj/entry.o src/entry.s
  </code></pre>
  
  <p>However, when I compile the linker says:</p>
  
  <pre><code>ld -melf_i386 -T kernel.ld -o kernel obj/entry.o obj/init.o
  obj/entry.o:(multiboot+0x0): undefined reference to `MB_MAGIC'
  obj/entry.o:(multiboot+0x4): undefined reference to `MB_FLAGS'
  obj/entry.o:(multiboot+0x8): undefined reference to `MB_CHECKSUM'
  </code></pre>
  
  <p>Those references are defined in the entry.s file with the preprocessor:</p>
  
  <pre><code>#define MB_MAGIC 0x1badb002
  #define MB_FLAGS 0x0
  #define MB_CHECKSUM -(MB_MAGIC + MB_FLAGS)
  </code></pre>
  
  <p>How can I enable preprocessing?</p>