Дополнительные библиотеки QNX4 при работе с OpenWatcomБиблиотека owcПри активной работе с OpenWatcom, рано или поздно, разработчик сталкивается с ошибками при сборке (линковке) программы, примерно следующего вида:
Error! E2028: __I8M is an undefined reference
Error! E2028: __I8RS is an undefined reference
Error! E2028: __I8LS is an undefined reference
Error! E2028: __I8D is an undefined reference
Это функции умножения, деления и сдвига, вызов которых вставляет компилятор, в надежде на то, что они (функции) будут обнаружены при линковке в
clib. Однако, в
clib из QNX4 таких функций нет. Решением этой проблемы может быть сборка библиотеки с недостающими функциями. Назовём такую библиотеку
owc.
Если при сборке приложений с помощью OpenWatcom, возникают указанные выше ошибки, то необходимо добавить опцию
-l owc линковщику. Можно добавить функции библиотеки
owc в
clib от QNX4, например, так:
$ wlib -q -b -c clib3r.lib owc3r.lib
После этого не нужно будет заботиться о добавлении опции
-l owc.
Изменения в библиотеке mathПри работе над сборкой библиотеки
xml2 для QNX4 при помощи OpenWatcom, я столкнулся с необходимостью использовать библиотеку
math из OpenWatcom. Точнее мне понадобились некоторые функции из нового заголовочного файла
math.h. Просто так заменить библиотеку
math не получится, т.к. некоторые функции типа
_FtoS,
__Nan_Inf и т.д. отсутствуют в новой библиотеке. К счастью, эти функции есть в исходном коде OpenWatcom, так что решением проблемы может быть включение указанных функций в новую библиотеку.
Сборка библиотекДля сборки библиотек на базе OpenWatcom 1.8.0 был подготовлен
Makefile. Всё что нужно, это скачать файл, изменить значения переменных
WATCOM_SRC и
WATCOM_BIN, которые должны указывать соответственно на каталоги с исходным кодом и собранным OpenWatcom. После этого набираем
make и получаем две библиотеки:
owc3r.lib и
math387r.lib. Копируем эти библиотеки туда, где их может найти утилита
cc для OpenWatcom (
math387r.lib поверх старой), копируем
math.h из каталога
h бинарной версии OpenWatcom поверх старого
math.h из QNX4. Теперь можно попробовать что-нибудь собрать.
![Wink](http://forum.kpda.ru/Smileys/koloboks/wink.gif)
Замечания и дополнения приветствуются. Скачать
Makefile для сборки библиотек могут только зарегистрированные пользователи.
![](http://old.kpda.ru/img/hidden_content_russian-utf8.png)