Компиляция с использованием g ++, но все еще получает неопределенные ссылки на оператор new - PullRequest
2 голосов
/ 14 июля 2011

Я компилирую с использованием g ++, но когда дело доходит до компиляции файлов в зависимом файле, который находится в том же каталоге, что и Makefile, я получаю

undefined reference to `operator new(unsigned int)'

Спасибо.

Edit:

Ты прав.

Как вы используете g ++ в качестве компоновщика вместо ld в контексте Makefile. Искал, но не смог понять.

Ответы [ 2 ]

4 голосов
/ 14 июля 2011

Теги вашего вопроса предполагают, что вы используете ld для ссылок. Не делай этого; используйте g++ вместо этого. Это приведет к связыванию статической библиотеки c ++ stdlib.

0 голосов
/ 06 сентября 2011

Этот g ++ является встроенным компилятором (исходный код для arm).Вы должны пометить свой вопрос как встроенный и / или рука.Компилятор хочет сказать вам, что вы должны реализовать _write, _close_r, ... самостоятельно.

Посмотрите на: http://www.codesourcery.com/sgpp/lite/arm/portal/doc7616/libc.pdf. Он описывает, что является сигнатурой для функций, которые вы должны реализовать.

...