einfaches Problem:Einfache C Inline-Linker-Fehler
gegeben folgendes Programm:
#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;
}
ich einen Linker-Fehler erhalten ...
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)
scheint, als ob es nicht der Fall ist Mach dir Mühe, es zu kompilieren.
es sollte nicht brauchen static
zu sein, würde ich nicht denken, auf dem, was ich in gelesen habe:
Linker error inline function (wie dies in einem anderen Objekt ist, und der Umgang mit zwei Definitionen statt Null)
Dies ist eine verwandte Verbindung, aber es ist C++, und ich glaube nicht, dass es in std C gute Praxis ist Code in der Kopfzeile zu setzen:
inline function linker error
Compiler Info:
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
Kompilation Beispiel:
# 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
Welchen Befehl haben Sie verwendet, um zu kompilieren? –
Welchen Compiler benutzen Sie? – Evans
es ist in xcode 4.6.2 –