запустите wxHaskell на другой машине - PullRequest
2 голосов
/ 05 мая 2010

Я скомпилировал программу на haskell, которая использует библиотеку wxHaskell, теперь я хотел бы знать, как заставить ее работать на других машинах, на которых не установлен wxHaskell. Конечно, я вижу ошибки и могу копировать dll, записанные в выходных данных, и копировать их на этот компьютер, но что такое профессиональное решение, могу ли я написать какой-либо установщик или что-то в этом роде?

спасибо за помощь

Ответы [ 2 ]

2 голосов
/ 05 мая 2010

Вам нужно будет полностью статически связать ваш исполняемый файл. Как это сделать, зависит от системы к системе, но обычно включает передачу флага -static в GHC и -optl-static вашему компоновщику.

0 голосов
/ 24 мая 2010

Если вы используете последние кабельные реализации wxHaskell, это довольно просто, так как почти все статически связано.

Я использую InnoSetup, который является открытым исходным кодом, и работает очень хорошо. Моему сценарию нужно как минимум следующее:

AppName=My Wonderful Application
AppVerName=My Wonderful Application 0.1.13
CreateAppDir=yes
DefaultDirName={pf}\MyWonderfulApplication

[Files]
Source: "path\to\your\wxWidgets.dll"
Source: "path\to\msvcrt.dll"
Source: "path\to\your\application.exe"

Все пути, кроме DefaultDirName, являются путями на компьютере разработчика.

Ключевыми элементами являются ваша DLL wxWidgets (может быть несколько DLL, в зависимости от того, как вы создали wxWidgets - я рекомендую и использую монолитную опцию, которая создает одну DLL wxmsw28u_gcc_custom.dll) и двоичный файл вашего приложения.

Если вы ссылаетесь на какие-либо другие библиотеки, они вам также понадобятся. Многие сторонние библиотеки в Windows требуют msvcrt.dll, поэтому я упомянул это.

...