Проблема заключается в использовании -Xlinker
для передачи аргументов компоновщику.Страница man g++
говорит:
-Xlinker option
Передать опцию как компоновщик.Вы можете использовать это для предоставления системных опций компоновщика, которые GCC не знает, как их распознать.
Если вы хотите передать опцию, которая принимает аргумент, вы должны использовать -Xlinker дважды, один раз для опции иодин раз за аргумент.Например, чтобы передать определения -assert, вы должны написать определения -Xlinker -assert -Xlinker.Не получается написать -Xlinker "-assert определения", потому что это передает всю строку как один аргумент, а это не то, что ожидает компоновщик.
Здесь -Xlinker
появляется только один раз, тогда какон должен появляться между каждым аргументом, отправляемым компоновщику.Итак, уродливое решение - написать:
-arch -Xlinker i386 -Xlinker -framework -Xlinker OpenGL -Xlinker -framework -Xlinker Carbon -Xlinker -framework -Xlinker Cocoa -Xlinker -framework -Xlinker IOKit
Но если вы найдете способ настроить Eclipse для использования -Wl,
вместо -Xlinker
, было бы лучше, я думаю:
-Wl, опция
Передать опцию компоновщику как опцию.Если опция содержит запятые, она разделяется на несколько опций в запятых.
Тогда вы можете использовать:
-arch,i386,-framework,OpenGL,-framework,Carbon,-framework,Cocoa,-framework,IOKit