2016-03-28 24 views
1

iPhone (simülatör) uygulamasında math.h adresinden sin(), cos(), tan() öğesini kullanmaya çalışıyorum.iOS: sin() Mimarlık için semboller bulunamadı i386

Bağlanacak standart C matematik kitaplığı işlevlerini almak için neyi değiştirmem gerekiyor?

.cpp dosyalarından arama yapıyorum.

örn.

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

Bağlayıcı çıkışı:

"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) 

Ben gerekli çerçeve eksik?

cevap

2

Bazı ortamlarda transandantal matematik işlevleri elde etmek için libm bağlantısını açıkça bağlamanız gerekir, bu nedenle bağlantı bayraklarınıza -lm eklemeyi deneyin.

+0

Bu "Diğer Linker Bayrakları" na "-lm" veya "lm" ekleme meselesi mi? – SparkyNZ

+0

Evet, muhtemelen Xcode'ta bunu yapmanın en iyi yolu budur. –

+1

Mükemmel - cosf(), sinf() vb iyi çalışır. Bu platformlar arası koddur, bu yüzden iOS sürümlerini sinf() vb. Değiştirmek için bir #define makrosu atacağım. – SparkyNZ

İlgili konular