problème simple:simple C erreur de liens en ligne
donné le programme suivant:
#include <stdio.h>
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;
}
Je reçois une erreur de linker ...
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)
semble que ce ne est pas prendre la peine de le compiler.
il ne devrait pas être static
, je ne pense pas, en fonction de ce que je lis dans:
Linker error inline function (comme cela est dans un autre objet, et de traiter avec 2 définitions plutôt que zéro)
Ceci est un lien connexe, mais il est C++ et je ne pense pas que ce soit une bonne pratique dans std C pour mettre le code dans l'en-tête:
inline function linker error
info compilateur:
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
exemple de compilation:
# 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
quelle commande vous avez utilisée pour compiler? –
Quel compilateur utilisez-vous? – Evans
il est clang dans xcode 4.6.2 –