Open Watcom

High-level languages programming questions
  • Думаю, собирать надо им же. Тут всё просто - нет хидер файла (.h)(такие файлы, в которых хранится различные объявления классов, переменных inline функций итд)

    Твои действия:
    Ищи файл _comdef.h. Если нашел - подключай при компиляции (В gcc опция -I/path), в твоем компиляторе может быть что-то другое

    Не нашел - гугль. Или попробуй open watcomom

    ВАЖНО!!!!!!! Clib - это C или C++?
    Tinki-vinki, Dipsy, Dipsy, Lala, Lala, Po, Po!
    Teletubbies, teletubbies. Oh, Hello!
  • Странный вы выбрали компилятор, т.к. и хидеры и стандарты (последнее только для ++) отличаются от "стандартных". _comdef.h - это Open Watcom Common Defines - макросы, характерные ТОЛЬКО для OW
    Tinki-vinki, Dipsy, Dipsy, Lala, Lala, Po, Po!
    Teletubbies, teletubbies. Oh, Hello!
  • andrew_programmer

    Обнови SVN. Я добавил несколько файлов, только VC это скорее всего не поможет. Компилировать лучше всего самим Ваткомом. Если открыть clib.wpj в IDE то либа скомпилируется за десять секунд, только нажми кнопку "маке"

    shamaz.mazum

    Clib это С.
  • Все-таки, я думаю, что получится ПООЛНАЯ хрень (хотя могу заблуждаться), если собиратся будет через M$ компилятор. Думаю, без Open Watcoma никак.

    Этот хидер можно найти через гугль, я искал, однако ссылок не помню (ищется сразу)
    Tinki-vinki, Dipsy, Dipsy, Lala, Lala, Po, Po!
    Teletubbies, teletubbies. Oh, Hello!
  • Раздобыл OpenWatcom1.7a (спасибо теоретикам).

    Открыл проект Clib в IDE. Подправил в нём пути к директории с include файлами на те, что у меня. Нажал make. Библиотека начала компилироваться, но после компиляции нескольких файлов выдало ошибку. Нехватает какого-то файла.
    Вот лог компиляции.

    Code: Select all

    cd C:\kolibri\watcom\trunk
    wmake -f C:\kolibri\watcom\trunk\clib.mk -h -e
    wasm CLIB\CGSUPP\7fu8386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\7u8f386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\__copy.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\__stos.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\amodf386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\bufld386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\div386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fdc386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fdfs386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fdi4386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fdi8386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fdmath.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fdmth386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fdn386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fprem386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fsc386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fsfd386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fsi4386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fsi8386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fsmth386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fsn386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    wasm CLIB\CGSUPP\fstat386.asm -i=C:\WATCOM\h;C:\WATCOM\h\nt;C:\kolibri\watcom\trunk\clib\h -mf -6r -fp5 -w4 -e25 -zq
    CLIB\CGSUPP\fstat386.asm(37): Error! E520: Cannot open include file fstatus.inc
    Error(E42): Last command making (C:\kolibri\watcom\trunk\fstat386.obj) returned a bad status
    Error(E02): Make execution terminated
    Execution complete
    
    KolibriOS-перспективная ос!
    Kolibri is best operation system in the world!
  • искал этот fstatus.inc?
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Обновил CLib, теперь должно компилироваться. В настройках IDE надо прописать путь к clib/h. У Ваткома были проблемы если путь содержал пробелы. Иногда его надо заключать в кавычки иногда нет. Crt содержит стартап код для программ. Для DLL он не годится.
    P.S. я залил Clib на ftp ftp://kolibrios.org/upload/clibr.7z
    P.P.S. ftp://kolibrios.org/upload/clibr_all.7z clibr.lib+crt.lib+sound.lib+system.lib
  • И всётаки нехватает файла fstatus.inc из-за него не компилируется crt.lib , а из-за неё clibr.lib

    Может дело в разных версиях OpenWatcom-а ?
    KolibriOS-перспективная ос!
    Kolibri is best operation system in the world!
  • Я летом скачивал исходники OpenWatcom-1.6.0-src . Я взял из них файл fstatus.inc .После этого исходники на ассемблере скомпилировались. Но тут возникла другая проблема. Как только компилятор находит в C файле строку _WCRTLINKD , он говорит, что нужно ставить символ ";" , а вместо него мол там какаето фигня идёт. Я пробовал ставить ";" . Компилятор больше не выдаёт сообщение об ошибке для этого исходника, а находит другой файл с _WCRTLINKD и ругается на него и т.д.
    KolibriOS-перспективная ос!
    Kolibri is best operation system in the world!
  • Наверное дело в разных версиях компиляторов. Посмотри опции компиляции.
    Это простое макро #define _WCRTLINKD __declspec(dllimport) определяется только если библиотека компилируется как DLL и для Колибри оно вообще не нужно. Можно заменить везде на #define _WCRTLINKD

    Хорошая новость: скомпилировал математический тест, все вычисления прошли успешно. Осталось сделать обработку математических исключений.

    Здесь последние скомпилированные библиотеки ftp://kolibrios.org/upload/clibr_01.7z
  • Serge

    К сожалению скомпилировать так и не удалось. Сколько я не экспериментировал с #define _WCRTLINKD __declspec(dllimport) всёравно не помогает. И изменения в настройках компилятора не помогают. А в OpenWatcom1.7a _WCRTLINKD вообще нет. Там несколько подругому. Я пробовал компилировать 1.6 при помощи 1.7a . Что-то скомпилировалось, а большая часть - нет. Похоже соаместимости со старыми версиями нет.

    Serge, какая у тебя версия компилятора ?
    Я хочу скачать такую же, чтобы проблем с разработкой небыло.
    KolibriOS-перспективная ос!
    Kolibri is best operation system in the world!
  • andrew_programmer

    Лучше я скачаю. У меня версия 1.5 По их логам там не было больших изменений а он слишком толстый что бы качать каждый раз. Пока можно пользоваться скомпилированными библиотеками. Математическую взять из дистриба /lib386/mat387r.lib, она платформенно-независимая.
  • Какова технология компиляции программ для KolibriOS при помощи OpenWatcom ?
    Я создал проект Win32 приложения. Добавил тестовый файл и статические библиотеки
    из выложенного на FTP архива. Скомпилировал. Получился exe файл. Что делать дальше?

    Вот тестовый файл.

    Code: Select all

    //OpenWatcom test file test.c
    
    #include <stdio.h>
    
    
    int main(int argc, char **argv)
    {
    	FILE*	f;
    	int	i;
    
    	f=fopen("test.txt","wb");
    	for(i=0;i<10;i++)
    	{
    		fputc(f,'a');
    	}
    	fclose(f);
    }
    
    KolibriOS-перспективная ос!
    Kolibri is best operation system in the world!
  • andrew_programmer

    pe2kos <file.exe> file Одна из версий есть на сайте у diamond-a. Чтобы программа работала надо обязательно добавить в опции линковки OPTION OFFSET=0 иначе база приложения будет 0х400000
  • Who is online

    Users browsing this forum: No registered users and 5 guests