2014-09-14 2 views
0

Я хочу скомпилировать наиболее переносимый C++, используя Visual Studios. Не существует варианта для проекта C++, который не является Visual. Какие настройки я могу изменить, чтобы компилятор ловил все, что не считалось бы стандартным C++?Самый простой способ настроить Visual Studio для нормальной разработки на C++ (non .net)

Это очень раздражает, потому что всякий раз, когда я создаю новый проект вместо создания функции main, он создает _tmain, который не будет работать на другой платформе.

+0

Используйте [qtcreator] (http://qt-project.org/wiki/category:tools::qtcreator), вы можете легко создавать кросс-платформенные графические приложения на C++ или просто использовать простой C++ без qt. – OneOfOne

+0

Является ли это визуальным или консольным? Если его консоль, просто создайте визуальный шаблон и выберите консоль. –

+0

@Robert it's console – Celeritas

ответ

0

Какие настройки я могу изменить, чтобы компилятор ловил все, что не считалось бы стандартным C++?

Коммутатор компилятора /Za отключает расширения для Microsoft. Он не сделает 100% совместимым с компилятором, но он будет обозначать самый не переносимый код.

Что касается фиксации нового проекта мастера, вы можете создать свой собственный шаблон проекта, но сделать снимок кода со стандартной подписью намного меньше.

0

Создайте свой проект и создайте унижение Unicode под названием _tmain(). Затем переименуйте его в main() и измените тип argv на char **.

Наконец, перейдите к настройкам вашего проекта и в разделе «Свойства конфигурации» -> «Общие» измените «Набор символов» на «Не задано». Это переключит его обратно на ASCII, после чего вы теперь будете столь же портативным, как и вы.

Если вы действительно хотите, чтобы проверить переносимость, вы можете скачать VirtualBox, использовать его для создания виртуальной машины с распределением Linux на нем (я использую Ubuntu LTS на работе для этого), и убедитесь, что вы можете скомпилировать и работать на обеих платформах. Это небольшая работа по настройке, но это стоит того, в конечном счете, так как это позволяет вам быть уверенным, что проект полностью перекрестная.

 Смежные вопросы

  • Нет связанных вопросов^_^