Статические библиотеки в DOS FB

Предыдущая тема Следующая тема Перейти вниз

Статические библиотеки в DOS FB

Сообщение  Alexey в Вт Май 19, 2009 9:22 pm

Пробовал создавать и использовать статические библиотеки в DOS версии FB по статье в он-лайн учебнике (как я понял, динамические можно создавать только в win32)
Создал *.a файл (lib?), скомпилировал. При попытке поключить с помощью #inclib "mylib.lib", пишет в FBIde, что "some library/include header is not linked" или в cmd - "cannot find -lmylib.lib". Но при попытке линковать командой -l mylib.lib (или mylib.a), говорит "cannot find -lmylib.lib" (похоже на глюк). Переименовал, клал в разные директории - ничего не помогает.

Alexey

Сообщения : 7
Дата регистрации : 2009-05-19

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Статические библиотеки в DOS FB

Сообщение  tux в Ср Май 20, 2009 7:19 pm

да, там в статейки косяки должны были быть, тк писал когда, не мог проверить (я об этом предупредил ниже), а потом както забылось.
Кароче вот в чем смысл, приведу пример на всяк случай, файл библиотеки "inc.bas"
Код:
declare sub f_test alias "f_test" ()
sub f_test()
print "hi"
end sub
компилируем коммандой
fbc inc.bas -lib
получаем файлик на выходе
libinc.a
(делаю под линухом, но под виндой помоему все в точности так же будет)
Здесь приставка lib в начале и расширение a является стандартом для никсовых ОС, поэтому для компиляторов оно не значительно, и обычно опускается, следовательно нам нужно только имя библиотеки inc
далее все просто, создадим к примеру файлик main.bas
Код:
#inclib "inc"
declare sub f_test alias "f_test"()
f_test
и компилируем как обычный исходник
fbc main.bas
либо, если не указываем в исходнике строку #inclib "inc", то подключаем библиотеку во время компиляции
fbc main.bas -l inc
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Статические библиотеки в DOS FB

Сообщение  tux в Ср Май 20, 2009 7:30 pm

вроде виндовый компилятор не подставляет в начале lib (или я ошибаюсь?), если не сложно, сообщите, доправлю статью, и расширение какое ставит у библиотеки?
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Статические библиотеки в DOS FB

Сообщение  Alexey в Ср Май 20, 2009 8:14 pm

Все произошло именно так, как Вы писали. Главная моя ошибка была в том, что имя библиотеки должно начинаться с lib, в противном случае и возникает выше описанная проблема - компилятор не понимает имя и, соответственно, не находит такой файл. Когда я делал способом в Вашем сообщениии, почему то компилятор подставил в имя lib.
И еще один вопрос:
Можно ли DOS версии создавать динамические библиотеки? Как я понял, статическая библиотека просто инклудится при компилировании и включается в исполнимый файл. Как же тогда быть, если нужно создать именно наружние библиотеки? Или проще их отдельно написать на С++ или Pascal?

Alexey

Сообщения : 7
Дата регистрации : 2009-05-19

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Статические библиотеки в DOS FB

Сообщение  tux в Чт Май 21, 2009 3:37 pm

Можно ли DOS версии создавать динамические библиотеки?
Я вроде тоже както пытался использовать динамические библиотеки в досе м у мня тоже ниче из этого не вышло. Просто вся работа по загрузке и обслуживанию динамических библиотек возлагается на операционную систему, и от компилятора практически не зависит и в досе, наскока я понимаю такой возможности нет (в те времена похоже в принципе понятия такого не было, ведь даже кусок бинарного кода мог нормально исполняться).
А на счет библиотек, написаных на паскале или Си, то их можно достаточно легко собрать вместе с программой, написанной на FB (я об этом уже не раз писал тут), есдинственное, вы должны иметь объекный файл этой библиотеки скомпиленый GNU совместимым компилятором.
Ну самый мой любимый вопрос всем, кто задает вопросы по досовскому компилятору... почему именно дос???
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Статические библиотеки в DOS FB

Сообщение  Alexey в Чт Май 21, 2009 6:48 pm

почему именно дос???
Просто я уже несколько месяцев занимаюсь разработкой своей ОС. А что такое DOS? Просто набор программ, загрузчик, коммандный процессор. По сути дела, это программирование не под DOS (так называют для краткости), а под голое железо. Программа, созданная для "DOS", в большинстве случаев выполняется без всякой ОС. Поэтому своя ось - масштабное приложение "для DOS". Пробные сборки, конечно, запускались просто с дискеты, без DOS. Мне он и не нужен. А вот программирование прикладных программ для dos не имеет смысла. А вообще, FB мне понравился возможностью компиляции для работы в 32 разрядном защищенном режиме и возможностью подключения библиотек, высокая скорость выполнения приложений, использование от GDI до DirectX - как раз для разработки ОС. API и GUI на нем создавать удобнее всего.
объекный файл этой библиотеки
Объектный файл включается в компиляцию или используется как внешняя библиотека?

Alexey

Сообщения : 7
Дата регистрации : 2009-05-19

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Статические библиотеки в DOS FB

Сообщение  tux в Чт Май 21, 2009 8:12 pm

Объектный файл включается в компиляцию или используется как внешняя библиотека?
линкуется вместе с основным кодом, по сути смысл получается как и обычной статической библиотеки, тока общение с кодом происходит не посредством внешних функций "оберток" а напрямую.
А по поводу динамических библиотек... раз у вас такие грандиозные планы, то можно написать и свой менеджер работы с библиотеками. По сути не так уж и сложно, примерно выгдядеть должно так:
програмка, которая грузит библиотеку в память, ищет в ней адреса входа во внешние функции и гденибудь в определенном месте сохраняет их, после чего завершается, оставляя в памяти эту библиотеку (вроде чета наподобе 49 функции 21 прерывания если не изменяет память Smile ). Приложение, которое должно работать с библиотеками должно собираться со специальной, заранее написаной библиотекой, в которой реализовани механизм поиска адресов этих функций, которые сохранил менеджер. Ну вот както так...
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Статические библиотеки в DOS FB

Сообщение  Alexey в Пн Июл 13, 2009 7:55 pm

А статическая библиотека freebasic`a подойдет для C++? Если конкретней, то для WATCOM 11 C/C++. Хочу сделать порт стандартной графической библиотеки freebasic`a для C++.

Alexey

Сообщения : 7
Дата регистрации : 2009-05-19

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Статические библиотеки в DOS FB

Сообщение  tux в Вт Июл 14, 2009 8:43 pm

незнаю как конкретно с етим компилятором ,а с gnu-шным без проблем, разработчики и стремятся получить как можно большую совместимость с Си, а на счет графической бибилотеки, если не ощибаюсь, то она сама написана на Си
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Статические библиотеки в DOS FB

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения