Предупреждение G ++: построено для неподдерживаемого формата файла, который не связан с архитектурой - PullRequest
1 голос
/ 17 декабря 2010

Всякий раз, когда я пытаюсь скомпилировать свой проект (с командной строкой g++ *.hpp *.cpp 2> log.txt), я получаю следующее:

log.txt:

ld: warning: in configfile.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: in erase.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: in filehandler.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: in insert.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: in operation.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)

Есть идеи, почему это происходит? Я нахожусь под OSX 10.6 (используя новейшие инструменты разработчика)

Ответы [ 3 ]

3 голосов
/ 17 декабря 2010

Вы компилируете файлы заголовков (.hpp), которые вы еще не должны делать.Компилировать только исходные файлы (.cpp)

Вместо того чтобы компилировать все файлы .cpp, компилируйте их по одному и затем связывайте их соответствующим образом.

g++ -c x.cpp
g++ -c y.cpp
g++ -c z.cpp

g++ -o tst x.o y.o z.o

Обратите внимание, что только один из ваших.Файлы cpp могут иметь функцию main (), иначе ОС не будет знать, где находится точка входа.

0 голосов
/ 26 января 2011

Параметр g ++ -arch i386 должен помочь вам:

g++ *.hpp *.cpp -m32 -arch i386

Это правильно?

0 голосов
/ 17 декабря 2010

У меня нет Mac, поэтому я как бы даю вам версию Linux, что делать, когда это происходит.

Найдите мультибиблиотечную версию gcc и перекомпилируйте с ключом -m32

g++ *.hpp *.cpp -m32

Попробуй это. Вы можете скомпилировать заголовочные файлы с помощью gcc для получения предварительно скомпилированных заголовков.

...