Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Работа с Intel Fortran через Visual Studio 2003 и не только

Автор: natavrame
Дата сообщения: 16.12.2010 16:30
нет, на английском )
вроде нашла выход, ошибка была в создании самого файла, оказывается, надо было создавать через консоль, добавляя файл нажатием правой кнопки и выбором соответсвующей функции.
Но спасибо! )
Автор: natavrame
Дата сообщения: 18.12.2010 22:08
да но только на этом не заканчиваются,к сожалению, вопросы.
При компиляции файла, возникают проблемы с открытием и чтением данных из файла...
---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!

Program: ...ojects\Project1\Console1\Console1\Console1\Debug\Console1.exe
File: f:\dd\vctools\crt_bld\self_x86\crt\src\winsig.c
Line: 419

Expression: ("Invalid signal or error", 0)

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)
---------------------------
Прервать Повтор Пропустить
---------------------------
Это может быть связана с установками Fortran или проблема в чем-либо другом???
Автор: kubmarine
Дата сообщения: 02.01.2011 23:42
Господа любезные! Подскажите, пожалуйста, как избавиться от этой ошибки:
Ошибка    1     error #11035: Fatal error cannot open bufferoverflowu    ipo    
Автор: KubAlex
Дата сообщения: 14.01.2011 15:29
Плиизб хелп. Установлены VS2008 и Intel Fortran 10.1.021 . И все работало. И вдруг получаю : rc.exe not found
Помогите, где мне взять.скачать эту rc.exe? Заранее благодарю.
Автор: akaGM
Дата сообщения: 14.01.2011 16:56
KubAlex
это компилятор ресурсов, вместе с остальными тулзами ставится как MS sdk (интелы своего не держут, так же как и линкер), при корректной инсталляции должен лежать где-то в окресностях

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\

протащи пас, а если нет, то придётся ставить СДК отдельно...
Автор: Kerrigan
Дата сообщения: 27.01.2011 02:40
Добрый день!
Немного не в тему ( VS2008), но не знаю куда еще писать.
Вобщем имею фортран от интела. И программы на самом фортране.
С самими программами все ок: проблема в том, что при компиляции мне требуются какие-то console.lib.... и т.д.... где их брать? Я взял от фортрана 92 года да и впихнул их с горя..
Вроде все заработало, только все равно компилится с ошибками:
Ошибка 3 error LNK2001: неразрешенный внешний символ "_f90_endwrite"    flib.lib(flib.obj)    
(их много и все одинаковые)...Есть у вас товарищи идеи почему так?

Автор: akaGM
Дата сообщения: 27.01.2011 05:45
Kerrigan

Цитата:
что при компиляции мне требуются какие-то console.lib

точнее при линковке?
что за программа, ты собираешь из проекта? *.sln *.vfproj?
посмотри в опциях проекта какие там библиотеки вписаны, отключи их, может
они вообще не нужны...


попробуй из командной строки запустить без библиотекЮ вот так:
ifort имя_твоей_программы.for

что говорят?
Автор: Kerrigan
Дата сообщения: 27.01.2011 06:54
Нет, это программа не из проекта - простые фортрановские проги: .f90
Ошибка верно сказано при линковании. Библиотеку подключить надо нашу универскую...(flib.lib)... она правда написана была при царе горохе. Она же в свою очередь требовала console.lib
Ее я выдрал из Intel-вского компилятора. Видимо либо интеловская не подходит, либо универская не хочет работать на системе моложе ХР(
Аж обидно.
А вот из командной строки тестануть не успел - дойду до дома, сразу отпишусь.
Автор: akaGM
Дата сообщения: 27.01.2011 07:21
Kerrigan

Цитата:
подключить надо нашу универскую...(flib.lib)... она правда написана была при царе горохе.

а может она вообще 16-разрядная...

Цитата:
А вот из командной строки тестануть не успел - дойду до дома, сразу отпишусь.

можешь не делать, если строго нужна flib.lib+console.lib, то это не поможет...

путей решения два:
1) ставь старый компилятор, под которым делалась flib
2) ищи исходники flib, и этот выход лучше...
Автор: XPEHOMETP
Дата сообщения: 27.01.2011 11:22
Kerrigan

Цитата:
Видимо либо интеловская не подходит, либо универская не хочет работать на системе моложе ХР(

akaGM

Цитата:
а может она вообще 16-разрядная...

Типа, да, написанные при царе Горохе библиотеки определенно не могут чувствовать себя плохо на старой Винде, а вот 16-разрядными они вполне могут быть... Как выход - подозрительную университетскую библиотеку компилировать в виде отдельной DLL. Ho тоже не всегда проканает: 16-разрядные DLL спокойно кушают Win 98 SE и Win ME, а вот ХР подключения 16-разрядной DLL может не перенести и убьет вызывающую программу. Да, надо исходники искать, не иначе...
Автор: Kerrigan
Дата сообщения: 27.01.2011 14:34
Эх... мда, я вот надеялся, вдруг можно без исходников))
Но видать увы. Ок, пойду к куратору за исходным кодом)
Большое спасибо всем. Вопрос можно считать решенным.
Автор: akaGM
Дата сообщения: 27.01.2011 15:30
Kerrigan
а что там такого хорошего консольного, в этой "университетской библиотеке"?
мож легче самому написать и не зависеть ни от кого?
Автор: Kerrigan
Дата сообщения: 27.01.2011 20:23
Там просто адаптированны все основные методы приближенных вычислений... после получения исходников думаю как раз переписать все под современный интеловский фортран.
Пусть хоть новые люди не мучаются (это я про свой универ).
Надо будет - смогу и здесь выложить... хотя кому эта еще библиотека может понадобиться?
Автор: akaGM
Дата сообщения: 27.01.2011 20:34
Kerrigan
я не знаю в каком ты универе, а в нашем вот в исходниках такая штука есть:
http://www.srcc.msu.su/num_anal/lib_na/libnal.htm
http://www.srcc.msu.su/num_anal/lib_na/cat/cat0.htm

Цитата:
хотя кому эта еще библиотека может понадобиться?

на самом деле "ненормальных" людей, по счастью, ещё достаточно :)
с разными вопросами по фортрану и математике лучше сюда заходи:
http://forum.ru-board.com/topic.cgi?forum=33&topic=7860#1
кстати, и ссылки там разные можешь глянуть/добавить...
Автор: SuperAlexis
Дата сообщения: 27.01.2011 20:42
Вышла новая версия Интел Фортрана под студию 2010: сегодня установил, все работает!
Также поставил ИМСЛ версию 7 (64 разряда).
Автор: XPEHOMETP
Дата сообщения: 27.01.2011 21:19
akaGM

Цитата:
я не знаю в каком ты универе, а в нашем вот в исходниках такая штука есть:

Ну, БЧА - штука известная, только вот не во всех браузерах странички корректно отображаются, в Iron вот сплошные кракозябры...
Автор: akaGM
Дата сообщения: 27.01.2011 22:15
XPEHOMETP
я и не говорю, что америку открываю, а человеку может и в новинку и поможет...

Цитата:
вот сплошные кракозябры

на этой странице вообще charset не прописан, так что в browser/view сами должны тогда ставить (1251, насколько я вижу)...
Автор: Kerrigan
Дата сообщения: 28.01.2011 10:40
Вау. "Мясо"
Спасибо. Там я еще не был.
P.S. И зря - уже увидел пункт предыдущей моей работы, с которой было очень геморно.
Автор: KChernov
Дата сообщения: 28.01.2011 12:44
akaGM
Вот уж не думал, что в ВЦ МГУ до сих пор настолько широко фортран используется.
Автор: akaGM
Дата сообщения: 28.01.2011 13:08
KChernov
и в РАН тоже...
Автор: akaGM
Дата сообщения: 29.01.2011 13:54
Kerrigan
если тебе так в жилу пришлась эта численная библиотека, то глянь так же на нашу подборку:
http://forum.ru-board.com/topic.cgi?forum=33&topic=7860&start=0&limit=1&m=2#1
там много чего полезного есть...
Автор: SuperAlexis
Дата сообщения: 14.02.2011 20:40
В ходе перевода старого кода F90 в 64-х разрядный возникла проблема:
не удается запустить dllprogress (был такой пример в CVF 6.6) как приложение х64.
На платформе х32 работает. Удалось запустить созданное на его основе windows- приложение х64 (без использования динамической библиотеки). Что посоветуете?
Автор: XPEHOMETP
Дата сообщения: 14.02.2011 21:23
SuperAlexis

Цитата:
не удается запустить dllprogress (был такой пример в CVF 6.6) как приложение х64.

На платформе х64 при запуске 64-битной программы подключить к ней 32-битную ДЛЛ нельзя, система сразу же прибивает нафиг. Надо перекомпилировать ДЛЛ как 64-битную, иначе не заработает. Кстати, на 32-битной винде семейства NT c 16-битными DLL еще хуже: их не позволяется загрузить даже 16-битной программе, которая сама по себе нормально работает в NTVM.
Автор: Igorr
Дата сообщения: 15.02.2011 16:07
XPEHOMETPНа платформе х64 при запуске 64-битной программы подключить к ней 32-битную ДЛЛ нельзяИнтересно узнать - а существует ли ПО по автоматической перекомпиляции/трансляции/... 32х-битных DLL в 64x-битные без доступа к первичным кодам, т.е. есть только 32х-битные DLL? Или это как-то самому можно сделать без особых ухищрений?
Автор: KChernov
Дата сообщения: 15.02.2011 16:38
Igorr
Да вроде без исходников нельзя.
Чисто теоретически (насколько позволяют мои дилетантские знания по различию между 16, 32 и 64-битными длл) должно быть можно написать длл-прокси - транслятор вызовов между разнобитными длл (и например что-то похожее есть для использования длл в .Net-коде).
Но с другой стороны, ничего подобного мне не встречалось (но это не значит, что его нет). Так что либо это совсем никому не нужно, либо настолько сложно/затратно, что проще переписать заново.
Автор: SuperAlexis
Дата сообщения: 15.02.2011 19:58
XPEHOMETP, Igorr, KChernov
Господа! Я же говорю о пересборке примера из компакт фортрана. Естественно все исходники есть. Строю приложение вин32 - все работает. Строю х64 - собирается без ошибок, а вот работать не хочет. Создает диалог прогрессбара из ресуросв, устанавливает заголовок, устанавливает функции-обработчики событий, а вот отображать не хочет!
Те же модули, собранные в виде одной программы (без дллей) формируют вполне рабочее приложение как для 32, так и для 64 разрядов. При трассировке все используемые переменные для собственно приложения и его версии с использованием длл имеют одинаковые значения...
Пытался менять опции компилятора (пока не все их изучил) - не помогает.


Автор: XPEHOMETP
Дата сообщения: 16.02.2011 11:10
SuperAlexis
Как говорится - нихт ферштейн! Одно только маленькое примечание (можете пинать ногами за его очевидность): а учли ли Вы, что в 64-битной системе размерность другая? Т.е. в 32-битной системе всякие там хэндлы и указатели - они integer*4, a в 64-битной они уже integer*8? Сей вопрос может быть нагло затуманен использованием спецификации kind=, которая у разных компиляторов интерпретируется по-разному. Я вот этой фишкой никогда не пользуюсь, так и пишу по-старинке: integer*4...

Добавлено:
Да, в дополнение, про пересборку. И исходники от CVF. Фишка в том, что если Вы перекомпилировали исходники на CVF 6.6 или вроде того, который таки понимал 64-битную систему, но только в лице Интеловского Итаниума, то можете эту ДЛЛ выкинуть в помойку. Это тупиковая ветвь эволюции, коды Итаниума сейчас практически не поддерживаются. Граждане от АМД радикально утерли нос Интелу с 64-битной системой под Винду, убив его на корню. Даже сам Интел сейчас маркирует свои процы так, что они определяются как AMD-64. Короче, на самом CVF перекомпилировать ДЛЛ под 64-битную систему нельзя, надо брать другой компилятор. Более современный. Который уже в курсе, что АМД местами разгромила Интел всухую.
Автор: SuperAlexis
Дата сообщения: 16.02.2011 19:01
XPEHOMETP
1. Естественно все размерности хендлов и указателей отслеживаются (4 бита и 8 бит), что я наблюдаю в отладчике.
2. Для перестройки проекта использую интел-фортран версия 12ХЕ (интегрирована в студио 2010) на платформе с интел-7.
3. Построенный тестовый проект без использования длл (тело функции с прогрессбаром в качестве подпрограммы включено в код приложения) работает в х64 без проблем. Переход же к длл работать отказывается - нет отображения окна прогрессбара.
В отладчике сопоставлял работу обеих (с длл и без длл) приложений - значения всех используемых переменных одинаковы.
Не знаю куда копать. ПЛЗ, хелп ме.
Автор: OlikF
Дата сообщения: 28.02.2011 17:51
Здравствуйте!
Пользуюсь Visual Studio 2005,Fortran Compiler 11.0.074. Понадобилась библиотека IMSL, скачала версию 7.0.
Пытаюсь подключить библиотеку (в Tools и в Properties все пути прописаны)
Но не могу понять, как разблокировать лицензию. В инструкции написано:

Для разблокирования библиотеки, скопировать файл imsl_license.lic в {каталог установки}\VNI\license\.
Если будут проблемы, можно скопировать license.dat в c:\flexlm\, либо добавить license.dat в lmtools.

Первый способ я попробовала, но он не помогает. Простая программка для проверки подключаемости библиотеки:

use numerical_libraries
IMPLICIT NONE
INTEGER NOUT
REAL V, X
X = 0.5
V = GAMMA(X)
WRITE (*,*) V
end

Выдает ошибки:
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_timer referenced in function _imslf_highland_check
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_free_job referenced in function _cleanup_lm_license
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_get_config referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_set_attr referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_hostname referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_status referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_username referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_userlist referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_checkout referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_perror referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_lic_where referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_new_job referenced in function _imslf_flexlm
1>imsls_err.lib(flexlm.obj) : error LNK2019: unresolved external symbol _lc_get_errno referenced in function _imslf_flexlm
1>Debug\Console1.exe : fatal error LNK1120: 14 unresolved externals


Судя по ошибкам проблема именно в разблокировании лицензии. FlexLm и LMTools я никогда не пользовалась, как быть?
Автор: SuperAlexis
Дата сообщения: 28.02.2011 20:27
Пути прописывай в свойствах проекта:
Проект->Свойства.
В параметрах Visual Studio ничего не менять. Вот ссылки на пример от производителя:
http://www.vni.com/tech/imsl/gettingStarted/using/use_for_win.php
http://www.vni.com/tech/imsl/gettingStarted/running/run_for_win.php
Удачи!

Страницы: 123456789101112131415161718192021

Предыдущая тема: Относительное перемещение мыши


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.