XCode / GCC соединение проблемы: файл не имеет необходимой архитектуры

Я пытаюсь портировать проект окон, который включает повышение 1.37 и wxwidgets к Mac. Это компилирует хорошо, но компоновщик дает мне, "файл не имеет необходимой архитектуры для архитектуры PPC" ошибка для libz.1.dylib и того же сообщения как предупреждение нескольких других библиотек. Я также получаю "дубликат dylib" предупреждение для libz.1.dylib.

Компоновщик произвел, похож на это:

Создание целевого “Gemsweeper Mac” проекта “Gemsweeper Mac” с конфигурацией “Отладка”

Проверка зависимостей

Ld "/Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac/build/Debug/Gemsweeper Mac.app/Contents/MacOS/Gemsweeper Mac" normal i386
    cd "/Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac"
    setenv MACOSX_DEPLOYMENT_TARGET 10.4
    /Developer/usr/bin/g++-4.0 -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk "-L/Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac/build/Debug" -L/Developer/SDKs/MacOSX10.4u.sdk/usr/local/lib -L/opt/local/lib "-F/Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac/build/Debug" -F/Users/adriangrigore/Library/Frameworks -F/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks -filelist "/Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac/build/Gemsweeper Mac.build/Debug/Gemsweeper Mac.build/Objects-normal/i386/Gemsweeper Mac.LinkFileList" -mmacosx-version-min=10.4 -L/opt/local/lib -L/Users/adriangrigore/wxwidgets-manual/wxMac-2.8.9/lib /opt/local/lib/libboost_system-mt.a /opt/local/lib/libboost_program_options-mt.a /opt/local/lib/libboost_thread-mt.a -arch ppc -arch i386 -framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime -framework OpenGL -framework AGL /Users/adriangrigore/wxwidgets-manual/wxMac-2.8.9/lib/libwx_mac-2.8.a -framework WebKit -lwxexpat-2.8 -lwxtiff-2.8 -lwxjpeg-2.8 -lwxpng-2.8 -lz -lpthread -liconv -framework SDL -framework Cocoa -o "/Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac/build/Debug/Gemsweeper Mac.app/Contents/MacOS/Gemsweeper Mac"
ld warning: in /Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac/build/Gemsweeper Mac.build/Debug/Gemsweeper Mac.build/Objects-normal/i386/main.o, file is not of required architecture
ld warning: in /Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac/build/Gemsweeper Mac.build/Debug/Gemsweeper Mac.build/Objects-normal/i386/variousfunctions-xcode.o, file is not of required architecture
ld warning: in /Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac/build/Gemsweeper Mac.build/Debug/Gemsweeper Mac.build/Objects-normal/i386/ParticleLayers.o, file is not of required architecture
ld warning: in /Users/adriangrigore/Documents/Gemsweeper Mac/Gemsweeper MacOS/Gemsweeper Mac/build/Gemsweeper Mac.build/Debug/Gemsweeper Mac.build/Objects-normal/i386/SDLMain.o, file is not of required architecture
ld warning: in /opt/local/lib/libboost_system-mt.a, file is not of required architecture
ld warning: in /opt/local/lib/libboost_program_options-mt.a, file is not of required architecture
ld warning: in /opt/local/lib/libboost_thread-mt.a, file is not of required architecture
ld warning: in /opt/local/lib/libz.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libiconv.dylib, file is not of required architecture
ld: in /opt/local/lib/libz.1.dylib, file is not of required architecture for architecture ppc
collect2: ld returned 1 exit status
ld warning: duplicate dylib /opt/local/lib/libz.1.dylib
ld warning: duplicate dylib /opt/local/lib/libiconv.2.dylib

Я довольно плохо знаком с платформой Mac, таким образом, любая справка значительно ценилась бы!

Спасибо,

Adrian

8
задан logancautrell 5 November 2011 в 15:44
поделиться

3 ответа

Из сообщений Вы имеете, большая часть Mac Gemsweeper и libboost были скомпилированы только с PPC как архитектура. Необходимо настроить XCode, чтобы генерировать универсальные двоичные файлы и вероятно перекомпилировать libboost через MacPorts. У недавнего MacPorts есть "универсальная" цель, которая могла помочь, хотя, если Вы не планируете выполнить ее на PPC, Вы добираетесь, просто перекомпилировали его.

Вы, кажется, должны перекомпилировать zlib и libiconv также.

2
ответ дан 6 December 2019 в 00:08
поделиться

Удаление и переустановка zlib и libiconv (плюс дюжина других зависимых освобождает) с sudo портом xxx устанавливают +universal, которому помогают. Спасибо за Ваш быстрый ответ!:-)

0
ответ дан 6 December 2019 в 00:08
поделиться

Кажется, что необходимо повторно загрузить или восстановить повышение для Mac. И независимо от того, что dylib - Вы, должен сделать это к. Простыми словами действительно просто необходимо переустановить библиотеки.

С повышением Вы не должны повторно загружать все это снова, сами источники являются многоплатформенными, это - просто двоичные файлы (освобождение и такой), которые изменяются от платформы до платформы. Возможности - Вы, уже загрузили все источники, таким образом, необходимо будет просто восстановить библиотеку из источников. http://www.boost.org/doc/libs/1_37_0/more/getting_started/unix-variants.html дает Вам некоторую информацию о создании повышения с помощью bjam. Я знаю на окнах, они предварительно скомпилировали двоичные файлы, но я ничего не вижу об этом на веб-сайте повышения для Mac.

2
ответ дан 6 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: