Примеры компиляции программ win32 api c (через командную строку) в windows

Попытка сделать что-то очень простое - скомпилировать базовые программы win 32 c через windows cmd. Это то, что я должен был бы сделать сам, но я просто застрял здесь ...

Я все время натыкаюсь на странные проблемы, неопределенные ошибки. Не знаю, стоит ли вдаваться в подробности. Использование tcc (крошечный компилятор c)

  1. Для одного простого примера hellowin.c из книги требуется winmm.lib. Как мне его импортировать? может ли кто-нибудь дать мне точную команду для gcc / tcc / любого компилятора командной строки для Windows (кроме cygwin)? Я пробовал разные варианты после прочтения справки, но продолжал выдавать глупую ошибку «не могу найти».

  2. образец из SDK платформы, который я пытался скомпилировать, дал - winnt.h "(ожидаемая" ошибка. Это после #define _M_IX86. что это значит?

  3. какое-либо общее руководство по компиляции программ c для Windows (win32 api) через командную строку? . объясняя, что все должно быть #defined ..etc ..

Я много гуглил, но большинство рекомендаций по компиляции c для программ win32 сосредоточено на vb. Я хочу сделать это вручную, в командной строке.

Спасибо


person gyaani_guy    schedule 20.09.2009    source источник
comment
Можете ли вы указать фактические ошибки, которые вы получаете?   -  person Logan Capaldo    schedule 20.09.2009
comment
Почему не Cygwin? Подойдет ли Мингв вместо этого?   -  person Jonathan Leffler    schedule 20.09.2009
comment
@Jonathan: TCC - это автономный компилятор C, который чрезвычайно легче по сравнению с тем, что вам нужно установить для Cygwin или MinGW. bellard.org/tcc   -  person Mark Rushakoff    schedule 20.09.2009
comment
возможный дубликат Компиляция C-кода из командной строки в Windows?   -  person Bo Persson    schedule 29.06.2012


Ответы (4)


Если я создаю новый проект с помощью Visual Studio, он # определяет следующие символы препроцессора с использованием параметров командной строки компилятора:

  • WIN32
  • _WINDOWS
  • один из _DEBUG или NDEBUG
  • UNICODE и _UNICODE (хотя заголовки и библиотеки Windows также поддерживают приложения, не поддерживающие Unicode, если ваш компилятор не поддерживает Unicode).

http://bellard.org/tcc/tcc-doc.html говорит: "Для использование в Windows, см. также tcc-win32.txt ".

person ChrisW    schedule 20.09.2009

Загрузите Windows PlatformSDK, в котором есть собственный компилятор командной строки. Он создает ярлык Пуск-> Программы -> ..., чтобы открыть командную строку для 32-битной или 64-битной версии. Выберите 32-битный вариант, и вы получите полностью инициализированную командную строку с компилятором в вашем PATH и всеми наборами INCLUDE, LIB и LIBPATH.


cmd> cl hello.c


Это должно дать вам hello.exe. Для получения дополнительной помощи по компилятору "cl /?", По компоновщику "link /?"

person hackworks    schedule 14.10.2009

Похоже на компилятор, который может искать пути INCLUDE и LIB в среде. Если вы сделали "set" в командной строке и не видите этих переменных в списке, вы можете попробовать установить их на пути, которые использует ваш компилятор. Не уверен, где бы вы установили этот инструмент tcc, но найдите каталоги с именами 'include' и 'lib' и попробуйте назначить их вышеупомянутым переменным среды.

person JustJeff    schedule 20.09.2009

Вы можете попробовать gcc на сайте Equity.com. Это компилятор с оболочкой mingw, но вам не нужно беспокоиться о mingw: просто скачайте, установите и используйте. IDE тоже нет.

Страница загрузки находится по адресу http://www.equation.com/servlet/Equation.cmd?fa=fortran.

person pmg    schedule 20.09.2009