Я уже нашел ответ сам: вы должны скомпилировать с помощью g++ -arch i386
. Компоновщик, похоже, хочет связывать только в 32-битном режиме.
Связывание WXWidgets в C ++ на объектах Mac OSX 10.7 не работает
Для кроссплатформенного проекта мы используем wxwidgets для создания кроссплатформенного графического интерфейса на C ++. WxWidgets был установлен на Mac OSX 10.7 с использованием macports. У нас нет проблем с компиляцией нашего исходного кода на Linux и Windows.
Компиляция наших разных классов прекрасно работает на Mac. Однако, когда мы пытаемся связать объекты, мы получаем следующие ошибки / предупреждения:
ld: warning: ignoring file ../../obj/games.o, file was built for unsupported file format which is not the architecture being linked (i386) ld: warning: ignoring file ../../obj/lobby.o, file was built for unsupported file format which is not the architecture being linked (i386) ld: warning: ignoring file ../../obj/ConfigFile.o, file was built for unsupported file format which is not the architecture being linked (i386) ld: warning: ignoring file ../../obj/net.o, file was built for unsupported file format which is not the architecture being linked (i386) ld: warning: ignoring file ../../obj/protocol.o, file was built for unsupported file format which is not the architecture being linked (i386) Undefined symbols for architecture i386: "_main", referenced from: start in crt1.10.6.o ld: symbol(s) not found for architecture i386 collect2: ld returned 1 exit status
Кажется, что gcc не может связать файлы. Когда мы хотим скомпилировать и связать один файл одновременно, мы получаем работающую программу. Поскольку у нас есть несколько файлов, которые мы хотим связать, мы не можем сделать это одновременно. Мы используем следующий make-файл:
https://github.com/timvdalen/OGO-2.3/blob/master/src/lobby/Makefile
Наш исходный код также включен туда. Я использую следующую версию GCC:
gcc --version i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Кто-нибудь знает, как мы можем связать эти файлы?
1 ответ на вопрос
Похожие вопросы
-
5
Переместить некоторые элементы библиотеки iTunes на другой диск?
-
3
Как синхронизировать библиотеки iPhoto между несколькими компьютерами Mac?
-
4
Как я могу перенаправить свою библиотеку iTunes на внешний жесткий диск?
-
-
5
Индекс недорогого NAS на Windows 7
-
5
Можно ли добавить больше миксов Genius в iTunes 9?
-
3
Синхронизация нескольких iPod с одной и той же библиотекой iTunes
-
2
Заставить MCRYPT работать с PHP
-
4
Linux-версия библиотек Windows 7
-
3
Как я могу заставить iTunes группировать по альбомам, игнорируя исполнителя?
-
5
Видео плеер / библиотека для Ubuntu с рейтингами и превью