bubanoid
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте. Не удаётся ПОЛНОСТЬЮ подключить IMSL! Вопрос поднимался в теме уже раньше Bear87 и NihtsVoron, так что прошу прощения. Моя связка отличается от ихней, возможно потому данная им инструкция по подключению IMSL у меня не сработала. MS Visual Studio 2005 + Intel Fortran Compiller 9.1 + IMSL FML 5.0 Задание оживить код 1 (из SFun.pdf), код 2 (из SFun.pdf), код 3 (из MathV1.pdf). код 1: Код: use AIE_INT implicit none real value, x x=0.49 value = AIE(x) end | код 2: Код: implicit none real value, x, AIE external AIE x=0.49 value = AIE(x) end | код 3: Код: use BSNAK_INT integer i, ndata, korder, nknot real xdata(5), xknot(8) ndata=5 korder=3 nknot=ndata+korder do 10 I=1, NDATA xdata(I) = float(i-1)/float(ndata-1) 10 continue CALL BSNAK (ndata, xdata, korder, xknot) end | Сделано: 1) Tools->Options->Intel(R) Fortran->Libraries добавлено c:\Program Files\VNI\CTT6.0\lib\IA32\ 2) Tools->Options->Intel(R) Fortran->Includes добавлено c:\Program Files\VNI\CTT6.0\include\IA32 если этого не добавлять, то не работает код No.2, при котором я явно указываю "USE AIE_INT". Существует так же папка c:\Program Files\VNI\CTT6.0\include\IA32_s. Вместо IA32 в инклудах добавлял так же и её. С ней код 2 также успешно заработал. Узнал, что "The IA32 directory contains shared modules and IA32_s contains static modules". Только вот какая разница между "shared modules" и "static modules" не знаю. И какую из них добавлять в инклуды, чтобы не было в будущем косяков тоже не знаю. 3) в настройках проекта (Project-> ... Properties) Linker->CommandLine->AdditionalOptions добавил imsl.lib imsl_dll.lib libguide40.lib Не могли бы вы объяснить, какая разница между кодами 1 и 2? С приведенными настройками коды 1 и 2 успешно работают, а вот код 3 при линковке (компилируется без ошибок) выдаёт следующую ошибку: imsl.lib(b2nak.obj) : error LNK2019: unresolved external symbol _SCOPY referenced in function _B2NAK imsl.lib(svrgp.obj) : error LNK2001: unresolved external symbol _SCOPY Debug/IMSL_useing.exe : fatal error LNK1120: 1 unresolved externals Подскажите пожалуйста, как с этим бороться. Решение см. пункт 3. В настройках проекта (Project-> ... Properties) Linker->CommandLine->AdditionalOptions следует добавить imsl.lib imsl_dll.lib imslscalar_dll.lib imslblas_dll.lib libguide40.lib (раньше imslscalar_dll.lib imslblas_dll.lib отсутствовали). в инклудах следует прописывать папку c:\Program Files\VNI\CTT6.0\include\IA32_s, если вам нужна полная портабельность вашей программы. То-есть если нужна возможность запустить её на другой машине не таская вместе с программой dll-ки. | Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 10:00 05-11-2010 | Исправлено: bubanoid, 20:48 07-11-2010 |
|