Size: a a a

2021 June 09

KF

Konstantin Firsov in dlang.ru
А кто-нибудь занимался кросскомпиляцией gtkd приложения в винду под линуксом? Я так понимаю, это делается скорее всего через ldc -mtriple. В туториалах для обычного gtk используется MinGW-w64.
источник

OB

Oleg B in dlang.ru
делал, всё норм
источник

OB

Oleg B in dlang.ru
нужно подготовить ldc для кросскомпиляции и поставить на винду gtkd библиотеки
источник

OB

Oleg B in dlang.ru
источник

OB

Oleg B in dlang.ru
сборка через dub с флагом arch
источник

KF

Konstantin Firsov in dlang.ru
спасибо, я так понимаю, это через dub можно сделать, заменив в нем dmd на ldc. Меня интересует под wine потестить приложение.
источник

KF

Konstantin Firsov in dlang.ru
поэкспериментирую, разве что есть зависимость от голанговской либы, которую тоже нужно кросскомпилить, посмотрим, что выйдет.
источник

AB

Andrey Bukhanovsky in dlang.ru
я его без плагинов юзаю, но, конечно, с небольшой правкой конфигов под себя.
источник

KF

Konstantin Firsov in dlang.ru
Сделал отдельную конфигурацию в dub для ldc и передал флаг -mtriple=x86_64-windows-msvc, все спотыкается о "Could not resolve configuration for package dyaml" очень похожее на это https://github.com/mysql-d/mysql-native/issues/194. Разные конфигурации вроде как видят "dependencies", под линуксом у меня два конфига и они нормально собираются. Пока отложил свою читалку, там достаточно много либ, взял другой проект, там только gtkd и dyaml, экспериментирую на нем. Как там пишут по ссылке, проблема может быть от линкера, но даже с --vverbose в выводе нет особой инфы, разве что: dyaml library NOT REACHABLE by all of (["dproject"])...кгм...
источник

KF

Konstantin Firsov in dlang.ru
возможно, эти либы зависят от каких-то специфических линуксовых либ, тот же dxml от libxml, а dyaml тоже от чего-то, наверное.
источник

OB

Oleg B in dlang.ru
а dub откуда взят? я обычно пользуюсь тем что с ldc идёт
источник

KF

Konstantin Firsov in dlang.ru
дефолтный, но сейчас попробую переключить.
источник

OB

Oleg B in dlang.ru
ты прочитал что по ссылке? передавать нужно не флаг mtriple в ldc, а флаг arch в dub
источник

OB

Oleg B in dlang.ru
вот так dub build --arch=x86_64-pc-windows-msvc
источник

OB

Oleg B in dlang.ru
не помню он напрямую или нет летит в --mtriple, может где-то по пути dub выцепляет его значение для чего-нибудь, например для определения конфигурации (хотя не факт, оч давно он брал это из результата работы компилятора, но там проблема при кросскомпиляции была)
источник

KF

Konstantin Firsov in dlang.ru
ах вот оно что, там внизу еще раздел был о сборке. Я посмотрел, что там linux x86 -> linux arm начинается и дальше не полез, ну и в конфиге "x86_64-.*-windows-msvc" совпало с x86_64-windows-msvc, поэтому я его и взял. Сейчас попробую поменять.
источник

OB

Oleg B in dlang.ru
и зачем отдельная конфигурация для сборки под платформу?
источник

OB

Oleg B in dlang.ru
если есть платформозависимые флаги и либы, они прописываются не через конфигурации
источник

OB

Oleg B in dlang.ru
источник

OB

Oleg B in dlang.ru
получилось?
источник