Может g ++ / minGW играют по правилам с Windows SDK? Действительно ли Visual Studio является единственной опцией?

Может g ++ и minGW на Windows XP используют Windows SDK?

А именно, почему делает g ++, не удайся скомпилировать:

#include 
#include 

int main(void) {
 printf("!!!Hello World!!!");
 return EXIT_SUCCESS;
}

Я попытался компилировать путем выполнения:

g++ -c -Wall  Test.cpp -IC:/Program\ Files/Microsoft\ Platform\ SDK/Include/

Я получаю унылый перечень начала ошибок компиляции

winnt.h:666:2: #error Must define a target architecture.

Я установил SDK Платформы Windows Server 2003 SP1

Фон

Я работаю над большим проектом программного обеспечения обработки изображений в реальном времени, который вплоть до сих пор использовал g ++, minGW и make-файлы гну (записанный вручную). Для новой возможности я должен взаимодействовать через интерфейс со средством захвата кадра, которое имеет SDK, который был разработан для Visual Studio. SDK средства захвата кадра зависит от заголовочных файлов из Windows SDK.

Я должен изучить Visual Studio или есть ли иначе?

16
задан AndyL 7 January 2010 в 17:06
поделиться

2 ответа

Я использую MinGW для компиляции Windows программ каждый день, без проблем. Должно быть что-то не так с вашей установкой - попробуйте версию на Twilight Dragon Media.

Edit: Just re-read your post - you don't need to specify the include directory as you are doing, and probably should not do it. Также, Вам может понадобиться (а может и не понадобиться) слегка загадочный флаг -mwindows. Я только что скомпилировал вашу программу, используя MinGW (сборка TDM) g++ 4.4.1, в командной строке:

g++ main.cpp

безо всяких проблем.

Дополнительная информация: Для того, чтобы вы знали, что делает флаг -mwindows, в документах GCC сказано:

Эта опция доступна для Cygwin и Цели MinGW. Он указывает, что графический пользовательский интерфейс приложение должно быть сгенерировано инструктирующий линкер установить Подсистема заголовка PE вводит соответствующий тип.

Лично я никогда не находил это необходимым, но тогда мои приложения для Windows являются инструментами или серверами командной строки.

13
ответ дан 30 November 2019 в 22:37
поделиться

попробуйте добавить эти определения, прежде чем включать эти заголовки окон

#define WINVER 0x0501
#define _WIN32_WINNT 0x0501

EDIT: мой gcc без проблем (и без этих определений) компилирует ваш скрипт. Я использую mingw's gcc 4.40 (alpha ?!)

.
0
ответ дан 30 November 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: