Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Porting Library


Автор: iDarkLord 28.5.2014, 00:10
Я использую Open Watcom копилятор для сборки DOS 16 приложения под 80188 подобную архитектуру, проблема заключается в том что я не могу подключить библиотеку собранную в BC 3.1. После казалось бы успешной линковки, при использовании некоторых функций из этой библиотеки я получаю сообщения от линковщика что не найден символ _malloc() или _free(). Использование функции malloc() в пользовательском коде проходит линковку. Как я понял проблема возникает только когда какя либо функция библиотеки вызывает malloc() или free(), то есть библиотека нифига не стэндалон и тянет зависимости из стандартной бибилотеки собранной для BC 3.1. Проверитб это я никак не могу и пересобрать библиотеку тоже, так как ее исходников нет. 
Всвязи с этим у меня вопрос: как портировать билиотеку на Open Watcom ? malloc() и free() есть в библиотеках Open Watcom но их символы скомпилированы видимо не так как того ожидает борландовская библиотека. 

Автор: xvr 28.5.2014, 12:40
Определить функции _malloc и _free, как напрямую вызывающие malloc и free - если кому то нужны эти функции, то дайте их ему  smile 

Автор: kuzulis 28.5.2014, 20:17
Не, не получиться прилинковать BC"шные либы используя OpenWatcom. 
Мы дизассемблировали их и писали свои обертки.. Все что у нас было, выложили тут: https://code.google.com/p/lib-adam-5000/

И еще некоторое обсуждение было http://forum.cta.ru/forum_posts.asp?TID=4142&PN=1 (если в тему)

Если конечно, я правильно "протелепатил", т.к. я подразумеваю что имеется ввиду программирование для ПЛК (например, от Advantech). smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)