Mail Archives: cygwin/1999/02/04/16:41:36
I'm a bit confused about building .exe targets. I am trying to create a
default
makefile for building win32 apps. Created the following Makefile. Make
comes
up with the proper command, but then I get an error opening winhello.exe.
See
output... When I type the command outside of make it works fine. The
program is attached.
I am using B20.1 with NT4/SP3.
Makefile.......
/**********************************
.SUFFIXES:
.SUFFIXES: .exe .c
.c.exe:
gcc -mwindows $< -o $@
/**********************************
OUTPUT........
D:\home\v2te2v2\test>make winhello.exe
gcc -mwindows winhello.c -o winhello.exe
/cygnus/CYGWIN~1/H-I586~1/i586-cygwin32/bin/ld: cannot open output file
winhello.exe
: No such file or directory
collect2: ld returned 1 exit status
make: *** [winhello.exe] Error 1
*******************************************
Program......
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
#ifdef __CYGWIN__
WinMainCRTStartup() {
mainCRTStartup();
};
#endif
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[]="HelloWin";
HWND hwnd;
MSG msg;
WNDCLASSEX wndclass;
wndclass.cbSize = sizeof(wndclass);
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;
wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
RegisterClassEx(&wndclass);
hwnd = CreateWindow(szAppName,
"The Hello Program",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd, iCmdShow);
UpdateWindow(hwnd);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
} /* End while */
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam,
LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch (iMsg) {
case WM_CREATE:
// PlaySound("hellowin.wav", NULL, SND_FILENAME | SND_ASYNC);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, "Hello, Windows NT", -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd, &ps );
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
} /* End switch */
return DefWindowProc(hwnd, iMsg, wParam, lParam);
}
- Raw text -