Компиляция для MS Windows с использованием Microsoft Visual Studio

Установка всего необходимого

Набор всего необходимого для сборки с помощью Visual Studio можно скачать отсюда.

Решение

Скопируйте каталог msvc2015 в каталог исходного кода gwyddion (каталог /trunk/gwyddion в svn, в дальнейшем для простоты мы будем называть его просто gwyddion).

Сгенерированные файлы

Скопируйте содержимое каталога generated-files в каталог gwyddion

Python 2.7

Установите Python 2.7. Версия 2.7.11 не работает. Последняя стабильная версия Python 2.7.9. пакеты установки python находятся в каталоге libs-install. Установите их в каталоги C:\libs\Python\Win32 и C:\libs\Python\x64. Из-за того, что файл python27_d.lib отсутствует, не получится связать проект с библиотекой отладки Python. Задание переменных MS_NO_COREDLL, Py_NO_ENABLE_SHARED и SWIG_PYTHON_INTERPRETER_NO_DEBUG в данном случае не помогает.

Как исправить:
  • скопируйте python27.lib в каталог python27_d.lib
  • в pyconfig.h закомментируйте define Py_DEBUG

python27_d.lib и pyconfig.h находятся в каталоге libs\Python27 поэтому их можно просто скопировать в каталог C:\libs\Python27.

Библиотеки

Gwyddion зависит от внешних библиотек. Необходимо установить пути к библиотекам как переменные окружения среды. Пути должны заканчиваться символом обратной косой черты '\'. Стабильные версии этих библиотек находятся в каталоге libs. Пример установки переменных окружения приведён ниже:

CFITSIO_DIR = C:\libs\cfitsio\
GTK_DIR = C:\libs\Gtk\
GTKGLEXT_DIR = C:\libs\GetGLExt\
LIBICONV_DIR = C:\libs\libiconv\
LIBXML_DIR = C:\libs\libxml\
PYTHON_DIR = C:\libs\Python27\
ZLIB_DIR = C:\libs\zlib\

'События сборки'

Частью сборки проекта будет копирование всех файлов, необходимых для запуска Gwyddion. Отдельные файлы копируются из каталога gwyddion в каталог $(OutDir) (или в соответствующий подкаталог). Файлы динамически связываемых библиотек (DLL) копируются в каталог $(OutDir) из путей к внешним библиотекам, заданным как переменные окружения. Команды доступны через пункт меню Project/Properties/Build Events/Post-Build Event.

Генерация решений

Gwyddion собирается под Linux с использованиемautotools. Преобразование процедур условной компиляции между различными платформами (особенно такой самобытной, как Windows) являются весьма нетривиальными (условия, зависимости, раскрытие переменных, различные файлы настроек в Linux/Windows вследствие различий в наборе доступных библиотек). Все эти особенности практически исключают возможность автоматического преобразования.

gen-gwyddion-msvc-sln.py это скрипт, генерирующий решение и проекты Visual Studio. Скрипт необходимо поместить в каталог gwyddion (см. выше). Gwyddion нужно сначала скомпилировать под Linux из этого каталога перед запуском скрипта. Компиляция под Linux создаёт недостающие необходимые файлы .c и .h и позволяет генерировать экспортируемые файлы функций (.def). Эти файлы необходимы для сборки под Windows. Они сортируются в каталог generated-files и должны быть скопированы в каталог gwyddion под Windows. Скрипт создаёт файлы решения Visual Studio (solution) и проекты (projects) которые генерируются в каталоге msvc2015. Все генерируемые скриптом каталоги создаются внутри каталога gwyddion.

Файлы config.h и gwyconfig.h создаются при компиляции под Linux с помощью autotools. Они соответствуют Linux-окружению и должны быть изменены чтобы можно было собрать проект с помощью Visual Studio. Подготовленные файлы конфигурации, совместимые с Windows являются частью скрипта. Эти файлы копируются в каталог generated-files в процессе работы генерирующего скрипта.

Процедура:

Компиляция на машине с Linux

На машине с Linux. Запустите ./autogen.sh и make в каталоге с исходным кодом (обычно gwyddion). См. раздел Сборка в среде Linux/Unix.

Запустите скрипт, чтобы создать файлы решения (solution) и скопируйте сгенерированные файлы.

На машине с Linux. Запустите gen-gwyddion-msvc-sln.py gwyddion в каталоге gwyddion.

Генерируемый каталогСодержание
msvc2015Gwyddion Solution
msvc2015/generated-filesфайлы .def, .c, .h

Необходимо скопировать все файлы и каталоги из ./msvc2015/generated-files на машине с Linux в ./gwyddion на машине с Windows.

Установка

Под Windows. См. раздел Установка всего необходимого.