xcode 3.0 - 文件不是必需的体系结构

时间:2011-08-08 22:43:56

标签: xcode

我使用Xcode 3.0使用CFITSIO库编译测试C程序。 根据以前的帖子我遇到的建议,我已经将CFITSIO构建为通用库,并将fitsio.h和libcfitsio.a文件添加到我的项目中。我已经验证我正在使用正确的版本(x86_64)。我已经验证了libcfitsio.a文件位于Target > Link Binary with Libraries标签下。我继续收到以下错误。

以前使用cfitsio创建的项目有效 - 我不是链接库的人。 另外,我可以从终端成功链接cfitsio。

有什么建议吗?

Building target “test1” of project “test1” with configuration “Release”

Checking Dependencies

ld /Users/jacqueline/test1/build/test1.build/Release/test1.build/Objects-normal/ppc/test1 normal ppc
    cd /Users/jacqueline/test1
    /Developer/usr/bin/gcc-4.0 -o /Users/jacqueline/test1/build/test1.build/Release/test1.build/Objects-normal/ppc/test1 -L/Users/jacqueline/test1/build/Release -L/Users/jacqueline/test1 -L/Users/jacqueline/test1/cfitsio/build/i386 -L/Users/jacqueline/test1/cfitsio/build/ppc -L/Users/jacqueline/test1/cfitsio/build/x86_64 -L/Users/jacqueline/test1/cfitsio/lib -L/Users/jacqueline/test1/cfitsio -F/Users/jacqueline/test1/build/Release -filelist /Users/jacqueline/test1/build/test1.build/Release/test1.build/Objects-normal/ppc/test1.LinkFileList -lcfitsio -arch ppc -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk
ld: warning in /Users/jacqueline/test1/libcfitsio.a, file is not of required architecture
Undefined symbols:

  "_ffopentest", referenced from:
      _main in main.o

  "_ffclos", referenced from:
      _main in main.o

  "_ffgrec", referenced from:
      _main in main.o

  "_ffghsp", referenced from:
      _main in main.o

  "_ffrprt", referenced from:
      _main in main.o

ld: symbol(s) not found
collect2: ld returned 1 exit status

2 个答案:

答案 0 :(得分:0)

好像图书馆不是完全普及的。尝试一次只针对其中一个体系结构构建项目(即,仅分别ppcppc64i386x86-64。当(如果)其中一个失败时,您知道您的库缺少哪个架构,因此您可以使用它重新编译它。 (或者,如果您不打算在该体系结构上进行部署,则可以不进行编译。例如,构建PPC 64没有任何意义,除非您真正从中受益,因为它将是唯一的机器。运行它是G5s,他们将运行普通的旧PPC 32位代码就好了。)

答案 1 :(得分:0)

我编辑过Xcode

'Project' > 'Edit Project Settings' > 'Architecture' 

不包括PPC,默认情况下似乎存在,构建成功。我在Intel Core 2 Duo上运行OSX 10.5.8。

以前我一直在使用cfitsio库本身的各种版本,而不是改变我的Xcode项目的默认架构。