2009-09-25 3 views
1

Я пытаюсь построить очень простой гр программу ++ в затмении, и я получаю очень глупую ошибку:Возникли проблемы построения C++ проекта в Eclipse CDT в OS X для глупой причины


**** Internal Builder is used for build    **** 
g++ -O0 -g3 -Wall -c -fmessage-length=0 -oMyFirst.o ../MyFirst.cpp 
g++ -oLinkedLists MyFirst.o 
ld: unknown option: -oLinkedLists 
collect2: ld returned 1 exit status 
Build error occurred, build is stopped 

Время, затраченное на потребление: 403 мс.


Проблема заключается в том, что г ++ в OSX не нравится флаг -o в команде «г ++ -oLinkedLists MyFirst.o» рядом с именем исполняемого файла ... Кто-нибудь знает, как либо настроить г ++ принять или сконфигурировать построитель в eclipse, чтобы между флагом -o и именем файла было такое пространство: «g ++ -o LinkedLists MyFirst.o»?

Thx заранее!

ответ

1

Марк фактически указал мне в правильном направлении, но то, что я должен был сделать, чтобы работа была пойти в: проекта >> Недвижимость >> C/C++ Сборка >> Редактор инструментов Цепной

Затем я изменил «Current toolchanin» выберите поле «MacOSX gcc», и это исправлено :)

0

Я использую Eclipse CDT 3.5 на OSX 10.5 и она работает -

**** Internal Builder is used for build    **** 
g++ -I/opt/local/include -O0 -g3 -Wall -c -fmessage-length=0 -osrc/tet.o ../src/tet.cpp 
g++ -o tet src/tet.o 
Build complete for project tet 

я получить место в линии связи для моего исполняемого Tet

Я использую настройки по умолчанию

В settings-> C/C++ Build-> Settings-> Mac OSX C++ linker Код линии comand:

$ {COMMAND} $ {FLAGS} $ {OUTPUT_FLAG} $ {OUTPUT_PREFIX} $ {OUTPUT} $ {INPUTS}

+0

Thx за вашу помощь! – hdx

2

Для дальнейшего выяснения этой проблемы решение не обязательно использовать программную цепочку MacOSX gcc. Проблема заключается в шаблоне командной строки для компоновщика в toolchain. Все, что вам нужно сделать, чтобы исправить проблему, - это отредактировать шаблон командной строки, чтобы гарантировать, что между каждым термином есть пробелы.

По умолчанию шаблона командной строки для GCC линкера Linux что-то вроде: $ {COMMAND} $ {ФЛАГОВ} $ {OUTPUT_FLAG} $ {OUTPUT_PREFIX} $ {OUTPUT} $ {ВХОД}

Примечания отсутствие пробелов между $ {OUTPUT_PREFIX} и $ {OUTPUT}. В этом суть проблемы. Просто добавьте пробел между этими двумя терминами, и ваша проблема будет решена.

+0

Где этот шаблон? – hdx

+0

Во-первых - спасибо, agodbehere! Я искал много мест, прежде чем найти это! Чтобы ответить на hdx, в версии Eclipse, используемой (платформа Eclipse 3.5.2), шаблон командной строки находится по адресу: project-> properties-> C/C++ Build-> Settings и выберите первую вкладку «Параметры инструмента», нажмите в строке компилятора GCC C++, а в правой части панели вы должны увидеть «Экспертные настройки: шаблон командной строки». Обязательно измените его для всех ваших конфигураций (например, отладка и выпуск) и повторите также для компоновщика GCC C++ (т. Е. Щелкните по нему слева, а затем вставьте пробел в командной строке справа). – Mick

+0

Еще одна вещь - это, по-видимому, теперь исправлено, поэтому в будущих версиях должно быть хорошо: Bugzilla - Ошибка 232373 – Mick