Разница между компиляцией в Qt Creator и g++

240
23 ноября 2017, 03:42

Обычно, я программирую в среде Qt Creator (на текущий момент это 4.4.1). Сегодня, я решил выйти за рамки привычной среды и попробовал написать код в Vim (выходить из vim умею очень давно :)), а сборку выполнить через консоль. Но вот с какой особенностью я столкнулся и не могу понять разницу.

Если написать следующий код в Qt, собрать и запустить, то всё будет работать замечательно:

#include <iostream>
using namespace std;
int main() {
    auto x = 0;
    cin >> x;
    cout << x << endl;
    return 0;
}

Если этот же код попытаться собрать через команду: g++ -c *.cpp, то получаем ошибку:

main.cpp:6:10: error: ‘x’ does not name a type
     auto x = 0;
          ^
main.cpp:7:12: error: ‘x’ was not declared in this scope
     cin >> x;
            ^

Объясните мне разницу, пожалуйста.

gcc --version
gcc (SUSE Linux) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
Answer 1

Просто Qt Creator сам добавляет поддержку С++11 строчкой "CONFIG += c++11" в pro файле. А при вызове руками g++ надо задавать поддержку новых станлартов явно. Это -std= ... Смотрите man gсс по части данной опции. Как правило это "c++11" (-std=c++11)

READ ALSO
Помогите в написании программы [требует правки]

Помогите в написании программы [требует правки]

Напишите программу runsim, осуществляющую контроль количества одновременно работающих UNIX-приложенийПрограмма читает UNIX-команду со стандартного...

225
Не знаю как правильно отправить запрос Java Android

Не знаю как правильно отправить запрос Java Android

Начал программировать под андроидНе профи но легкие приложения получаются

220
Вставить значение в xml-содержимое

Вставить значение в xml-содержимое

В спринг-бут проекте в папке resources есть шаблон xmlМеняется в нем только одно значение

260