Программирование для dos4g.exe

Программу компилирую с помощью Visual Studio 5.0

У меня есть dos4g.exe с примерами, я взял hello world пытаюсь компилировать. Мой BAT файл для компиляции следующий

cl.exe /c /G3 /Z7 /I "C:\Program Files\DevStudio\VC\include" hello.c

link.exe /DEBUG /DEBUGTYPE:CV /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /NOD /PDB:NONE /OUT:hello.exe /MAP:hello.map /DEF:hello.def /STUB:"D:\DOS4G\bin\pestub.exe" /LIBPATH:"C:\Program Files\DevStudio\VC\lib" hello.obj

pause

мой .def файл следующий

NAME  HELLO
DESCRIPTION "PE C++ Hello World Example Program"
VERSION 1.0
CODE  PRELOAD MOVEABLE DISCARDABLE
DATA  PRELOAD SINGLE
EXPORTS
DOS4GOPTIONS

мой файл hello.c следующий (взят из примеров dos4g.exe поставки)

/*
*  Standard Hello World program 
*  Copyright (c) 1996 Tenberry Software, Inc.
*  All Rights Reserved
*/

// Standard header files
#include <stdio.h>

// Test DOS4GOPTIONS string export by preventing the startup banner from 
// being displayed
char DOS4GOPTIONS[] =
    "dos4g=StartupBanner:OFF\n";
   
main(int ac, char **av)
{
    // Print the standard response to the screen
   printf("Hello, World!\n");
}

Ошибка на скриншоте. Что делать?

https://ibb.co/4Jh7FF0

UPD.

error LNK2001: unresolved external symbol _printf

error LNK2001: unresolved external symbol _mainCRTStartup

Добавлю что есть еще исходный файл (из поставки) Makefile для Polymake:

#  Hello world example makefile
#
#  Also shows example of exporting DOS4GOPTIONS
#
#  Built using MSVC\C++ v4.0 and MASM6.11 or Watcom 10.5 and WASM
#  Makefile scripted to use Polymake
#
#  Copyright (c) 1996 Tenberry Software, Inc.
#  All Rights Reserved

all : hellomcp.exe

4GDIR=.\DOS4G

PESTUB=$(4GDIR)\bin\pestub.exe

MSVC4Path="C:\MSVC"

MSVC4Env :
  @%setenv PATH=$(MSVC4Path)\BIN;$(MSVC4Path)\BIN\WIN95;$(MASM611Path)\bin;
  @%setenv INCLUDE=.;$(4GDIR)\INCLUDE;$(MSVC4Path)\INCLUDE;
  @%setenv LIB=$(4GDIR)\lib;$(MASM611Path)\lib;$(MSVC4Path)\LIB;
  @%setenv MSDEVDIR=$(MSVC4Path)


AOPTS = /coff /c
COPTS = /c /G3 /Z7 /I. /DMSVC40
LIBS = $(MSVC4Path)\LIB\LIBC.LIB $(4GDIR)\LIB\KERNEL32.LIB

.c.obj :
    @%do MSVC4Env
    :cl $(COPTS) $<


############################################################################
#                                                        
# Make Microsoft PE C++ HELLO objects and executables
#
############################################################################

hellomcp.exe : hellomcp.obj $(LIBS) hellomcp.def
    @%do MSVC4Env
    :link <@<
/DEBUG
/DEBUGTYPE:CV
/SUBSYSTEM:CONSOLE
/INCREMENTAL:NO
/NOD
/PDB:NONE
/OUT:$*.exe
/MAP:$*.map
/DEF:$*.def
/STUB:$(PESTUB)
$[m, *.obj, $**]
$[m, *.lib, $**]
<
   :$(4GDIR)\bin\pe2dbg $*.exe
    :$(4GDIR)\bin\w32patch -T $*.exe

hellomcp.obj : hello.c
    @%do MSVC4Env
    :cl $(COPTS) /Fohellomcp.obj $<

hellomcp.def: makefile
   @echo NAME  HELLOMCP                                     >  hellomcp.def
   @echo DESCRIPTION "PE C++ Hello World Example Program"   >> hellomcp.def
   @echo VERSION 1.0                                        >> hellomcp.def
   @echo CODE  PRELOAD MOVEABLE DISCARDABLE                 >> hellomcp.def
   @echo DATA  PRELOAD SINGLE                               >> hellomcp.def
   @echo EXPORTS                                            >> hellomcp.def
   @echo         DOS4GOPTIONS                               >> hellomcp.def

Но я решил скомпилировать вручную с помощью BAT файла.


Ответы (0 шт):