2

我编写了一段使用 libfftw3 和 libaiff 外部库的 C 代码。该代码在我的机器上编译和执行完美,该机器具有所需的库并运行 OS X 10.9 Mavericks。我正在使用 Xcode 5.1 编译我的程序,并且我相信我已经正确链接了所需的库并提供了头文件等的必要路径(一切都在我的计算机上正常工作)。

事实上,生成的可执行文件也可以在另一台运行 OS X Mavericks 且安装了所需库的计算机上运行。

问题:我正在尝试使用 Xcode 5.1 编译我的代码以创建一个可执行文件,该可执行文件将在运行 OS X 10.8 (Mountain Lion) 的计算机上运行,​​并且没有安装上述两个库。到目前为止,我已经尝试了许多不同的方法:

(1)首先,我将Base SDK保持为OS X 10.9,并将OS X Deployment Target改为OS X 10.8,编译成功。但是,当我在运行 OS X 10.8 且未安装任何库的第三台计算机上执行时,出现以下错误:

dyld: lazy symbol binding failed: Symbol not found: ___sincos_stret
Referenced from: /Users/ec/Desktop/Auto Designer C Program Testing/Auto Designer
Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: ___sincos_stret
Referenced from: /Users/ec/Desktop/Auto Designer C Program Testing/Auto Designer
Expected in: /usr/lib/libSystem.B.dylib

Trace/BPT trap: 5

(2) 其次,我尝试在 Xcode 中将 Base SDK 也更改为 OS X 10.8,同时将 OS X 部署目标保持为 OS X 10.8。这一次,我什至无法编译我的代码。Xcode 给出了以下错误:

Undefined symbols for architecture x86_64:
"___sincos_stret", referenced from:
   _fftw_mktriggen in libfftw3.a(trig.o)
   _cexpl_sincos in libfftw3.a(trig.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

非常感谢我如何解决这个问题的任何帮助。谢谢

4

0 回答 0