Всем привет! Не могу разобраться в ситуации: Есть :::::::::::::: 1.hpp :::::::::::::: #ifndef X1 #define X1 void f() { return;} #endif :::::::::::::: 1.cpp :::::::::::::: #include "1.hpp" :::::::::::::: main.cpp :::::::::::::: #include "1.hpp" int main() { } Делаю: $ g++ main.cpp 1.cpp Выдача: /tmp/ccn0Pw3d.o: In function `f()': 1.cpp:(.text+0x0): multiple definition of `f()' /tmp/ccmDTWkb.o:main.cpp:(.text+0x0): first defined here collect2: ld returned 1 exit status В чем ошибка, хоть убей не пойму[может спать пора уже, 3-и сутки "на ногах"]