Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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-файлу. |