title: "Multiple Definitions" at the same line in C
body: <p>So I'm making a function called reboot, but when I define it the compiler gives an error like the function is already defined.</p>
  <p>Here is bios.c:</p>
  <pre class="lang-c prettyprint-override"><code>#include &quot;bios.h&quot;
  #include &lt;stdint.h&gt;
  #include &lt;libasm/asm.h&gt;
  void reboot()
  {
      uint8_t good = 0x02;
      while (good &amp; 0x02)
          good = EmeraldASM_inb(0x64);
      EmeraldASM_outb(0x64, 0xFE);
      asm volatile(&quot;hlt&quot;);
  }
  </code></pre>
  <p>here is bios.h :</p>
  <pre class="lang-c prettyprint-override"><code>#ifndef BIOSPOWER_H
  #define BIOSPOWER_H
  #pragma once
  void reboot();
  extern void shutdown();
  #endif
  </code></pre>
  <p>here is the compiler error: <code>/home/abbix/Documents/Projects/emerald/src/firmware/bios.c:5: multiple definition of `reboot'; src/firmware/bios.o:/home/abbix/Documents/Projects/emerald/src/firmware/bios.c:5: first defined here</code></p>
  <p>Here is my Makefile:</p>
  <p><a href="https://pastebin.com/xCcQEtx3" rel="nofollow noreferrer">https://pastebin.com/xCcQEtx3</a></p>