Мне нужно изменить порядок выдачи команды Setup.hs, чтобы связать мое приложение.Я пытаюсь построить проекции WinRT для Haskell.Пока они примитивны, но я хочу, чтобы кросс-компиляция mingw / nix из Linux была «первым классом» в этом проекте.
Они довольно хорошо собираются на платформе Haskell Windows 10 с установленным Windows SDK.
Но когда я выпускаю nix-build
из GNU / Linux с подходящим файлом nix, он не может сказать, что не может найтинекоторые символы, которые приходят из windowsapp (windowsapp.lib
в Windows, libwindowsapp.a
в mingw).
Однако, если я сохраню временные файлы, которые он создает, и использую Setup build -v
для получения команды линковки, я могу сделатьон связывается путем повторного запуска с помощью -lwindowsapp
, добавляемого к end командной строки ld
- где угодно, где смешаны другие специфичные для Windows / Mingw библиотеки, такие как -lmsvcrt
и -lgdi32
.Похоже, они связаны с дополнительными библиотеками rts и base.
Использование extra-libraries: windowsapp
или ghc-options: -lwindowsapp
отлично работает в Windows, но ставит -lwindowsapp
в направлении начало командной строки и поэтому завершается неудачно при кросс-компиляции Linux / mingw.
Как я могу использовать cabal для автоматического добавления этого аргумента в конец команды, которую он дает компоновщику?