Задача: получить exe-файл минимального размера программы hello world (исключительно в borland C 3.1).
Вот мой исходник:
#include <io.h>
void main(void)
{
char s[] = "Hello World";
_write(1, &s, 12);
}
_только_ компилирую, потом из консоли делаю:
# tlink hl.obj
получаю сообщение:
Turbo Link Version 5.1 Copyright (c) 1992 Borland International
Error: Undefined symbol __WRITE in module HL.C
Error: Undefined symbol N_SCOPY@ in module HL.C
Warning: No stack
Но при этом получаю размер "чистого" exe = 560 байт. К чему эти ошибки? Потом хочу
прилинковать lib'ы, но вылетаю с ошибками. На данном шаге что не так?
Есть ли у вас вообще идеи по созданию минимального бинарника? Я выбрал в опциях
модель памяти small (наиболее оптимальная), instruction set 80386 (наиб. оптимальная по
размеру). Но нужно явно ручками линковать библиотеки, а у меня tlink делает все с
ошибками.
второй путь: создаю бинарник (4280 байт), пытаюсь сделать:
# tlink hl.obj d:\lang\bc\lib\cs.lib
получаю сообщение:
Error: Segment _TEXT exceeds 64K
причем раз 30 напечатана эта ошибка. Это к чему? Кто знает, подскажите плисс
Вот мой исходник:
#include <io.h>
void main(void)
{
char s[] = "Hello World";
_write(1, &s, 12);
}
_только_ компилирую, потом из консоли делаю:
# tlink hl.obj
получаю сообщение:
Turbo Link Version 5.1 Copyright (c) 1992 Borland International
Error: Undefined symbol __WRITE in module HL.C
Error: Undefined symbol N_SCOPY@ in module HL.C
Warning: No stack
Но при этом получаю размер "чистого" exe = 560 байт. К чему эти ошибки? Потом хочу
прилинковать lib'ы, но вылетаю с ошибками. На данном шаге что не так?
Есть ли у вас вообще идеи по созданию минимального бинарника? Я выбрал в опциях
модель памяти small (наиболее оптимальная), instruction set 80386 (наиб. оптимальная по
размеру). Но нужно явно ручками линковать библиотеки, а у меня tlink делает все с
ошибками.
второй путь: создаю бинарник (4280 байт), пытаюсь сделать:
# tlink hl.obj d:\lang\bc\lib\cs.lib
получаю сообщение:
Error: Segment _TEXT exceeds 64K
причем раз 30 напечатана эта ошибка. Это к чему? Кто знает, подскажите плисс