Ошибка простого встроенного компоновщика C

простая проблема:

учитывая следующую программу:

#include 

inline void addEmUp(int a, int b, int * result)
{
    if (result) {
        *result = a+b;
    }
}

int main(int argc, const char * argv[])
{
    int i;
    addEmUp(1, 2, &i);

    return 0;
}

Я получаю ошибку компоновщика ...

Undefined symbols for architecture x86_64:
  _addEmUp", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

кажется, что это не такне надо его компилировать.

это не должнодолжно бытьstaticЯ бы недумаю, основываясь на том, что я прочитал в:

Встроенная функция ошибки компоновщика (поскольку это находится в другом объекте и имеет дело с 2 определениями, а не с нулем)

Это связанная ссылка, но это C ++, и я нея думаю, что в std C хорошей практикой является размещение кода в заголовке:

ошибка компоновщика встроенной функции

Информация о компиляторе:

cc --version
Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix

пример компиляции:

# cc main.c 
Undefined symbols for architecture x86_64:
  "_addEmUp", referenced from:
      _main in main-sq3kr4.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocatio

Ответы на вопрос(2)

Ваш ответ на вопрос