xcode 3.0 - файл не имеет необходимой архитектуры - PullRequest
0 голосов
/ 09 августа 2011

Я использую Xcode 3.0 для компиляции тестовой C-программы с использованием библиотеки CFITSIO.Следуя советам из предыдущих постов, я создал CFITSIO как универсальную библиотеку и добавил в свой проект файлы fitsio.h и libcfitsio.a.Я подтвердил, что использую правильную сборку (x86_64).Я убедился, что файл libcfitsio.a находится на вкладке Target > Link Binary with Libraries.Я продолжаю получать следующую ошибку.

Ранее созданный проект, использующий cfitsio works - я не был тем, кто связывал библиотеку.Также я могу успешно связать 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 голосов
/ 13 августа 2011

Как только я отредактировал Xcode

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

, чтобы он не включал PPC, который, по-видимому, был там по умолчанию, сборка прошла успешно.Я использую OSX 10.5.8 на Intel Core 2 Duo.

Ранее я использовал различные сборки самой библиотеки cfitsio и не изменял архитектуру по умолчанию в своем проекте XCode.

0 голосов
/ 09 августа 2011

Кажется, что библиотека не является полностью универсальной.Попробуйте создать проект только для одной из архитектур за раз (т. Е. Только ppc, ppc64, i386 и x86-64 отдельно).Когда (если) один из них выходит из строя, вы знаете, какая архитектура отсутствует в вашей библиотеке, поэтому вы можете перекомпилировать ее с этим.(Или, в качестве альтернативы, если вы не собираетесь развертывать на этой архитектуре, вы можете просто не скомпилировать ее. Например, нет никакого смысла в создании PPC 64, если вы действительно не выиграете от этого, как единственные машины, которые будутзапустите его, это G5s, и они прекрасно выполнят старый 32-битный код PPC.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...