Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Fortran > Compaq 6.5 : Как сделать и подключить библиотеку ?


Автор: VVV13 30.5.2013, 20:09
compaq 6.5, пакет Multiple Precision Computation, David M. Smith, f90-библиотека FM 
FM-пакет состоит из 3-х файлов (в порядке ссылок друг на друга):
FMSAVE.f95
FM.f95 
FMZM90.f95
я положил их в этом порядке в один файл и в compaq 6.5 сделал две версии (файлы) библиотеки - *.dll и *.lib. 
Положил обе версии в директорию Debug и туда, где исходник программы. 
Компиляция тест-программы ни для той ни для другой версии не идет: "Error in opening the Library module file." 
Если положить все mod-модули в директорию Debug или сложить все сорсы библиотеки в правильном порядке  
в один файл с тест-программой, то все нормально транслируется и считается. 
Как правильно сделать и подключить библиотеку?   
Библиотека довольно большая и долго транслируется.
Спасибо

Автор: FCM 2.6.2013, 14:56
Так... счас попробуем вспомнить, что к чему...
Если исходники библиотеки содержат модули, то при компиляции помимо прочего должны создаваться .mod-файлы. Таковые должны быть доступны компилятору при компиляции приложений, использующих библиотеку. 
В настройках Visual Studio можно указать какие директории автоматически просматриваются 
1) фортран-компилятором на предмет включаемых (include) тестовых файлов и модулей
2) компоновщиком на предмет lib-файлов.
Т.е., если речь идет о статической библиотеке - строишь ее в отдельном проекте, mod и lib-файлы кидаешь  в директории, назначенные для вышеуказанного автоматического просмотра.  
Если в библиотечный модуль (или в программу, использующую библиотеку) кинуть директиву !DEC$OBJCOMMENT LIB: "libname" с именем библиотеки, то возможно указанных действий будет достаточно. Если без этой чудесной директивы, то возможно нужно в свойствах проекта указать полный путь к ней.
В случае динамической библиотеки с модулем, насколько помню, также создаются файлы mod, lib и файл dll. В случае так называемого неявного связывания DLL, насколько помню, для первых двух должно быть справедливо все, что касается и статических библиотек, а послдений должен быть доступен на этапе выполнения - т.е. его, например, можно кинуть к exe-файлу. 

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