2016-03-28 100 views
1

我試圖在iPhone(模擬器)應用程序中使用math.h中的sin(),cos(),tan()。iOS:sin()未找到架構i386的符號

我需要改變什麼才能獲得標準的C數學庫函數鏈接?

我從.cpp文件撥打電話。

例如

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

連接器輸出:

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

我缺少一個必要的框架?

回答

2

在某些環境中,您需要明確鏈接libm才能獲得先驗數學函數,因此請嘗試將-lm添加到鏈接器標誌。

+0

這只是將「-lm」或「lm」添加到「其他鏈接器標誌」的問題嗎? – SparkyNZ

+0

是的,這可能是Xcode中最好的方法。 –

+1

優秀 - cosf(),sinf()等工作良好。這是跨平臺的代碼,所以我會拋出一個#define宏來將iOS版本更改爲sinf()等。 – SparkyNZ

相關問題