Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Tools] Модули как линкуются и др вопросы 
V
    Опции темы
marcusmae
Дата 10.10.2008, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


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

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



Всем привет,

Fedora Core 9 (linux)
gfortran, g++

Я тут повертел-повертел и пришёл к выводу, что совершенно не понимаю, что в процессе компиляции происходит с файлами модулей (.mod). Допустим, имеется многопакетный проект, в котором каждый пакет компилится в объекты и собирается в отдельную статическую библиотеку .a-архиватором. Стандартная схема. А дальше-то что? Если посмотреть на библиотеку утилитой nm, то она показывает, что все модульные символы undefined. Логично, что при попытке слинковать библиотеку с экзешником, радостно вывалится куча неразрешённых зависимостей. Видимо, компилятор поместил все символы модулей в mod-файлы. Как вот их оттуда задействовать теперь? Вопрос в отношении не чисто фортранного проекта, а многоязыкового, пусть, например, экзешник и некоторые пакеты написаны на C++. Можно где-нибудь увидеть пример скрипта или make-файла для такого случая?

Спасибо.


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
popovda
Дата 2.11.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 9.6.2006
Где: Москва

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



Никогда не сталкивался с Вашей проблемой. Но gfortran настоятельно не рекомендую. Из свободных g95 стабильнее. BIND ( С ) не пробовали? Это стандартный модуль iso_c_binding. Я для связки с C/C++ им пользовался и весьма успешно.

Это сообщение отредактировал(а) popovda - 2.11.2008, 12:37


--------------------
С уважением, Попов Д.А.
PM MAIL   Вверх
marcusmae
Дата 2.11.2008, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


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

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



popovda, привествую, спасибо за ответ,

Проблема была решена давно, зря я не отписался. На самом деле, неразрешённость символов была спровоцирована другим - я забыл слинковать к плюсовому бинарнику библиотеку стандартных функций фортрана.

Цитата(popovda @  2.11.2008,  11:36 Найти цитируемый пост)
Из свободных g95 стабильнее.

На кластере выбор только между gfortran или ifort. В итоге сделал, что работает и с тем, и с другим.

Байндинг на самом деле не нужен в большинстве случаев, всё неплохо работает напрямую.

Про модули вот какой интересный факт: символы, определённые в модулях с точки зрения готового исполняемого образа - это глобальные переменные с именами вида <имя_модуля>_<имя_символа> smile  



--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




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


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

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