Подтвердить что ты не робот

Избегайте ссылок на libstdС++

Я работаю над встроенным проектом, который в настоящее время использует C в Linux и uClibc. Мы заинтересованы в том, чтобы переместить его на С++, но мне не нужны служебные данные, связанные со ссылкой в ​​libstdС++. Мое впечатление, что это возможно, если мы не будем использовать что-либо из STL, например, iostream или vector.

Как создать g++ для компиляции без ссылки на libstdС++?

4b9b3361

Ответ 1

При компиляции используйте g++ -c только для компиляции. Затем для привязки используйте ld вместо g++. Это вызывает ссылку непосредственно, что требует от вас указать все ваши библиотеки в командной строке (в том числе libc и libcrt).

В качестве альтернативы, если вы используете g++ как "лучше c", вы можете использовать gcc для своего финального этапа ссылки (который будет включать libc автоматически)

Ответ 2

Вы можете использовать

g++ -nodefaultlibs -fno-exceptions a.cc

Но вы не можете использовать все возможности С++ таким образом...

Ответ 3

Для полноты и правильности:

g++ -c -fno-exceptions a.cpp
gcc a.o -o a