Основное отличие состоит в том, что (при условии, что файлы обнаружены как C ++) g ++ устанавливает флаги, необходимые для связи со стандартной библиотекой C ++. Это может также настроить обработку исключений. Я бы не стал полагаться на тот факт, что только из-за того, что ваше приложение не использует стандартную библиотеку, она не нужна при компиляции в C ++ (например, обработчик исключений по умолчанию).
РЕДАКТИРОВАТЬ: Как отмечено в комментариях, у вас будут проблемы с любыми конструкторами (которые работают) для статических объектов, а также с невозможностью получения таблиц виртуальных функций (поэтому, если вы используете эти функции C ++, вам все равно нужно связать эта библиотека).
EDIT2: Если вы не используете специальный код C99 в своем проекте C, я бы просто переключился на компиляцию всего этого как C ++ в качестве первого шага в процессе миграции.