Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Tools] Подключение библиотеки .lib 
V
    Опции темы
Amalthea
Дата 9.11.2010, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



Нужна помощь!

Раньше никогда не сталкивалась с библиотеками .lib, что это такое, как используются и т.д. 

Есть Папка Toolkit с разными процедурами на фортране и другой информацией. В ней есть папка с библиотеками Toolkit/lib/spicelib.lib и support.lib

Я правильно понимаю, для того чтобы воспользоваться этими процедурами необходимо подключить эти библиотеки  spicelib.lib и support.lib ?

Вообще данные были взяты с сайта НАСА. Я туда написала, мне ответили, прислали кучу информации с описанием этих процедур и др. И написали "You will need to link your application to the library SPICELIB (toolkit\lib\spicelib.lib)."

У меня FPS4.0

 smile 
PM MAIL   Вверх
FCM
Дата 9.11.2010, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.3.2009

Репутация: 8
Всего: 9



Как и объектные файлы, lib файлы нужно линковать (компоновать)  к проекту, в котором используешь их содержимое.

Обычно, если используется IDE,  в свойствах проекта есть опция, где можно указать необходимые (на этапе компоновки) библиотеки.
Еще в линейке Visual Fortran (но не знаю было ли это уже в FPS4) 
- можно явно включить lib-файл в проект (туда где Sources)
- можно воспользоваться директивой !DEC$  OBJCOMMENT LIB : "путь_к_библиотеке"для автоматической линковки стат.библиотеки  (В FPS возможно вместо !DEC надо набирать !MS - точно не помню)

Это сообщение отредактировал(а) FCM - 10.11.2010, 09:52
PM MAIL   Вверх
Amalthea
Дата 17.11.2010, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



Пробовала создавать модуль таким образом:
            MODULE mod_spice
            !MS$OBJCOMMENT LIB:"D:\TOOLKIT\LIB\SPICELIB.lib"
            END MODULE mod_spice
Затем подключала этот модуль в основную программу:
    PROGRAM CONVTM
    USE mod_spice
    
            IMPLICIT NONE
            ...
Выдает ошибку: 
            Linking...
            Text1.obj : error LNK2001: unresolved external symbol _FURNSH@8
            Text1.exe : fatal error LNK1120: 1 unresolved externals
            Error executing link.exe.
Сейчас установила IntelFortran 11, попробую в нем поковыряться.
PM MAIL   Вверх
Amalthea
Дата 17.11.2010, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



Воспользовалась советами Cr@$h

1. Можно непосредственно добавить файл *.lib в проект Visual Studio посредством команды Project > Add Existing Item….
2. Можно указать имя библиотеки импорта в опциях линкера. Для этого нужно открыть окно настроек проекта (Project > Properties…) и добавить в поле Aditional Options на вкладке Linker\Command Line имя *.lib.

Выдает ошибку:
           Fatal error LNK1104: cannot open file 'LIBC.lib'

Нашла решение:
           Use the Multi-Thread-Safe version LIBCMT.LIB instead of LIBC.LIB that may fix. 

           1. Go to the Project property page.
           2. Go to Linker on the left tree view panel
           3. Open the Input node
           4. In the "Additional Dependencies" you will find LIBC.lib, replace that with LIBMT.lib 

           Rebuild your project.

Но тоже не помогло. Теперь пишет: 
           Fatal error LNK1181: cannot open file 'LIBMT.lib'
PM MAIL   Вверх
Amalthea
Дата 17.11.2010, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



Попробовала прописать игнор на LIBC.lib, ошибок больше не выдает, но процедуры из этой библиотеки все равно не вызываются. Буду искать дальше ошибки.
PM MAIL   Вверх
FCM
Дата 17.11.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.3.2009

Репутация: 8
Всего: 9



Цитата(Amalthea @  17.11.2010,  10:42 Найти цитируемый пост)
 Text1.obj : error LNK2001: unresolved external symbol _FURNSH@8


Может не находить процедуру, если разные соглашения о вызове, т.к. от последнего зависит декорация имен при компилировании..
А как выглядит объявление имени FURNSH и обращение к нему ?
PM MAIL   Вверх
Amalthea
Дата 23.11.2010, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



CHARACTER*(*)         METAKR
PARAMETER           ( METAKR = 'convtm.tm' )

CALL FURNSH ( METAKR )

----------------------------
файл: convtm.tm содержит

         \begindata
         KERNELS_TO_LOAD = ( 'kernels/lsk/naif0008.tls',
                                              'kernels/sclk/cas00084.tsc' )
         \begintext

PM MAIL   Вверх
Amalthea
Дата 23.11.2010, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



Проблема решена!
Решила запускать программу через FAR.
Библиотеки подключала следующим образом:
     !MS$OBJCOMMENT LIB:"D:\TOOLKIT\LIB\SPICELIB.lib"
А в файле ifortvars_ia32.bat
     C:\ProgramsFiles\Intel\Compiler\11.0\066\fortran\Bin\IA32\ifortvars_ia32.bat
в конце файла добавила такой код:
     @if exist %1.exe del %1.exe.bat
     ifort.exe /4Yportlib /w /Ox /real-size:64 /free %1.f >%1.log
     @if exist %1.exe del %1.obj
     @if exist %1.exe del %1.log
     @if exist %1.exe %1.exe
И все заработало!
PM MAIL   Вверх
FCM
Дата 23.11.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.3.2009

Репутация: 8
Всего: 9



Наверное нет никаких противопоказаний, чтобы и через IDE заработало.
PM MAIL   Вверх
Amalthea
Дата 24.11.2010, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



Возможно и нет противопоказаний, но у меня не получилось и специалистов вокруг нет. 
FAR меня устраивает. 
Считаю, что тему можно закрыть  smile 
PM MAIL   Вверх
FCM
Дата 24.11.2010, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.3.2009

Репутация: 8
Всего: 9



Цитата(Amalthea @  24.11.2010,  09:39 Найти цитируемый пост)
Считаю, что тему можно закрыть  smile  

Для этого у автора темы в ее начале доступна опция "пометить как решенный".
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




[ Время генерации скрипта: 0.1108 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.