Есть ли разница между GCC(g++) и Visual Studio?

152
17 марта 2022, 23:40

Есть пару вопросов от начинающего.

  1. Если программа корректно компилируется в VS, будет ли она корректно компилироваться в g++(GCC)? В make?
  2. Если программа корректно компилируется в VS на Windows 10, будет ли она корректно компилироваться на Linux?
  3. Есть ли возможность проверить будет ли программа компилироваться в Linux и в g++(GCC)?
Answer 1

Есть пару вопросов от начинающего.

Вопросов не пара, а три. :-)

Если программа корректно компилируется в VS, будет ли она корректно компилироваться в g++(GCC)?

Не факт, но при некоторых усилиях можно добиться, чтобы компилировалось и там и там.

В make?

Сама утилита make ничего не компилирует, make это система для сборки, которая использует внешний компилятор.

Если программа корректно компилируется в VS на Windows 10, будет ли она корректно компилироваться на Linux?

Опять же смотря какой компилятор Вы примените в Linux. Кстати, компилироваться может и будет, а работать не будет, так как системные вызовы в Windows и Linux разные.

Есть ли возможность проверить будет ли программа компилироваться в Linux и в g++(GCC)?

Конечно, такая возможность есть. Ставите VS и GCC и проверяете.

UPD1:

Не обязательно ставить Linux, чтобы проверить компилируемость Вашей программы под GCC. Есть порты GCC под Windows.

UPD2:

В связи с захватывающим спором коллег о природе утилиты make я не поленился и поглядел, как в Википедии определяется эта утилита. Вот что там написано:

make — утилита, автоматизирующая процесс преобразования файлов из одной формы в другую. Чаще всего это компиляция исходного кода в объектные файлы и последующая компоновка в исполняемые файлы или библиотеки.

Утилита использует специальные make-файлы, в которых указаны зависимости файлов друг от друга и правила для их удовлетворения. На основе информации о времени последнего изменения каждого файла make определяет и запускает необходимые программы.

READ ALSO
Указатели, delete и nullptr

Указатели, delete и nullptr

Сап! Объясните максимально подробно, пожалуйста, что именно делают delete и nullptr для указателейВот код:

167
Что за стиль записи в структуре

Что за стиль записи в структуре

Так вот я не понимаю,зачем писать WNDCLASSEX после обЪявления структуры,вычитал где то что это создание объекта,то есть ,будто бы мы объявили WNDCLASSEX...

158
c++, нейронная сеть, перцептрон, xor, ошибка

c++, нейронная сеть, перцептрон, xor, ошибка

Пытаюсь писать простой перцептрон, который имеет только 2 вход и 1 выход и не имеет никаких скрытых слоевПерцептрон должен выполнять функцию...

103