2016-03-28 4 views
1

Ich versuche, sin(), cos(), tan() von math.h in einer iPhone (Simulator) -App zu verwenden.iOS: sin() Symbole nicht gefunden für Architektur i386

Was muss ich ändern, um die Standard-C-Math-Bibliotheksfunktionen zum Verknüpfen zu erhalten?

Ich mache Anrufe von .cpp-Dateien.

z.B.

#include <math.h> 
.. 
float f = tan(p1); 

Linker Ausgang:

"tan(float)", referenced from: 

     GetTan(float) in myfuncs.o 

ld: symbol(s) not found for architecture i386 

clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Bin ich ein benötigtes Rahmen fehlt?

Antwort

2

In einigen Umgebungen müssen Sie explizit libm verknüpfen, um transzendente mathematische Funktionen zu erhalten. Versuchen Sie also, Ihren Linker-Flags -lm hinzuzufügen.

+0

Ist es nur eine Frage von "-lm" oder "lm" zu "Andere Linker Flags" hinzufügen? – SparkyNZ

+0

Ja, das ist wahrscheinlich der beste Weg, dies in Xcode zu tun. –

+1

Ausgezeichnet - cosf(), sinf() usw. funktionieren gut. Das ist plattformübergreifender Code, also werde ich ein #define-Makro einfügen, um die iOS-Versionen in sinf() etc. zu ändern. – SparkyNZ