Я новичок в C++ с фона C# .NET и Visual Studio (и некоторых Objective-C/XCode).Как написать код на C++, который работает между IDE?
Я хочу написать кросс-платформенное (Windows, OS X, Linux) приложение с C++. Я начал с TextMate на своем Mac и Notepad на своей Windows и скомпилировал код с помощью g ++ в командной строке/терминале для создания исполняемых файлов на своей платформе.
я запуталась, когда я начал использовать IDE (а именно VC++, XCode и Затмение). Я пробовал все три проекта и создал проекты, прежде чем вставлять в него свой код. Если я начну редактирование в одной среде IDE, я не знаю, как получить возможный фрагмент кода для компиляции на другой платформе.
Например, если у меня есть файл класса - foo.cpp
. В Eclipse он будет генерировать foo.cpp
(внутри него foo.h
, foo::foo()
) и отдельный файл заголовка foo.h
(внутри него файл FOO_H_
и т. Д.). В Xcode он генерирует папку Foo
, которая содержит main.cpp
и foo.l
) - все. Почему разница?
Я, хотя код C++ - это просто код на C++, который создает исполняемые файлы для конкретной платформы, если они скомпилированы на этой платформе. (например, компилировать на Mac, он становится исполняемым файлом Mac, а если скомпилирован в Windows, он становится исполняемым файлом Windows).
Кажется, как только я начал использовать IDE, мой C++-код автоматически становится неспортивным из-за всех этих автоматически сгенерированных файлов, о которых я не понимаю. Я пытаюсь одновременно читать документацию на XCode, Eclipse и Visual Studio, и это еще более смущает меня. Я просто хочу, чтобы написать C++ ...
Я также следующий классический текст Страуструп, чтобы забрать C++ и в книге, ничего подобного заголовка или источника .h
или _H_
файлы не были упомянуты, как и того, почему все эти файлы были сгенерированы.
Помимо использования компилятора Notepad/Textmate + G ++, как я могу написать чистую, портативную программу на C++ в среде IDE, которая может быть кросс-платформенной, или это даже возможно?
Вам нужны файлы заголовков для совместного использования определений классов между единицами компиляции и интерфейсами библиотек для других пользователей. Если вы делаете все в одном файле, вам это не нужно. Другие шаблоны проектов, вероятно, просто полезны для этой платформы, например. VC создает stdafx.h для использования в качестве предварительно скомпилированного заголовка для ускорения, включая все заголовки API Windows при сборке и т. Д. Если вы беспокоитесь, выбросьте созданные шаблоном файлы и просто начните с пустого файла. – Rup
И 'FOO_H_' и т. Д. Является [include guard] (http://en.wikipedia.org/wiki/Include_guard) - это механизм, чтобы избежать повторного разбора файла заголовка дважды, если вы дважды включаете его в ту же компиляцию единица через разные маршруты и т. д. – Rup