为以前的OS X版本编译C程序

时间:2014-03-13 21:57:18

标签: c xcode macos fftw aiff

我编写了一段使用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部署目标更改为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)其次,我尝试将Base SDK更改为Xcode中的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)

我非常感谢您如何解决这个问题。感谢

0 个答案:

没有答案