一起使用C文件和Cocoa类的问题

时间:2011-04-04 08:11:47

标签: c cocoa ffmpeg warnings

我已将ffmpeg和SDL库导入到我的Xcode项目中,以用于Cocoa应用程序。 当我的项目只包含Cocoa类时,我的项目使用这些库构建并成功运行,但是当我在项目中包含C文件时,构建失败,出现一个警告和35个错误:

警告是:

ld: warning: in /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/powerpc-apple-darwin10/4.2.1/libgcc.a, file was built for unsupported file format which is not the architecture being linked (x86_64)

和错误:

 "___gedf2", referenced from:

     _eval_expr in libavcodec.a(eval.o)
     _quantize_lpc_coefs in libavcodec.a(lpc.o)
     _rc_2pass2_before in libxvidcore.a(plugin_2pass2.o)

 "___ledf2", referenced from:

         _qp2bits in libavcodec.a(ratecontrol.o)
         _get_qscale in libavcodec.a(ratecontrol.o)

 "___umodsi3", referenced from:
         _vorbis_parse_setup_hdr_codebooks in libavcodec.a(vorbis_dec.o)
         _vorbis_parse_setup_hdr_codebooks in libavcodec.a(vorbis_dec.o)

为了运行代码,这些是配置设置:

  • 活动架构:x86_64
  • 项目设置中的架构:标准(32/64位通用)
  • Mac OS X版本:10.6.3
  • Xcode版本:3.2.3

此外,相同的代码在我的其他系统Mac Mini上使用相同的设置成功构建并运行。

如果有人知道我错过了什么,请帮忙。感谢。

1 个答案:

答案 0 :(得分:2)

仔细阅读错误消息(强调我的):

  

ld:警告:在/Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/powerpc-apple-darwin10/4.2.1/libgcc.a,文件是为不支持的文件格式,不是链接的体系结构( x86_64

看起来你正在以某种方式混合PowerPC和英特尔库。您正在为x86_64进行编译,但是您正在为PowerPC选择libgcc.a

带有所有前导下划线的那些符号可能应该来自libgcc.a,但您没有链接libgcc.a的x86_64版本,因此它们在行动中失踪并且随后出现混乱。听起来像你的xcode配置中的东西很混乱。