Позволяет ли кросс-компиляция в Windows из * nix с использованием GCC использовать функции, еще не поддерживаемые VC ++? - PullRequest
2 голосов
/ 24 марта 2012

Я собираюсь создавать приложения на C ++ для Windows и * nix.В дополнение к возможности проверить, что все прекрасно компилируется за один шаг, мне интересно, позволяет ли это на самом деле использовать части стандарта C ++, которые VC ++ еще не поддерживает, такие как шаблоны с переменными параметрами и некоторые другие функции.

Возможно ли это?Кажется, логика диктует, что это так, но я полагаю, что это зависит от того, нужен ли gcc какой-либо инструмент для конкретных окон, который генерирует эти вещи как часть этапа кросс-компиляции.

Ответы [ 2 ]

3 голосов
/ 24 марта 2012

Мне интересно, позволяет ли это на самом деле использовать те части стандарта C ++, которые VC ++ еще не поддерживает, такие как шаблоны с переменными параметрами и некоторые другие функции.

Да.Для окончательного исполняемого файла важен код, который генерирует компилятор или ссылки на него, а не то, что может делать VC ++.

Однако будьте осторожны с платформами специальными инструкциями и методами.

2 голосов
/ 24 марта 2012

Ну, во-первых, если вы пишете на стандартном C ++, рано или поздно VC ++ наверстает упущенное. Во-вторых, вы не обязаны использовать VC ++ под Windows. Вы можете использовать MinGW, который gcc портирован на Windows.

Как правило, при написании портативного программного обеспечения следует учитывать две вещи:

  • Операции, специфичные для архитектуры: чтобы сделать программное обеспечение переносимым, не следует полагаться на конкретную архитектуру. Например, предположим, что long int равно 32 битам.
  • Операции с операционной системой: возможно, это более сложная проблема. Если у вас есть операция, специфичная для ОС, например, создание каталога, вы должны написать для нее собственную функцию, внутри которой у вас есть #ifdef, выполняющие различные задачи в зависимости от того, в какой ОС они компилируются.
...