LINUX.ORG.RU

Unix like софт в виндовом репозитории vcpkg

 ,


0

1

Всех приветствую. Для пример - нахожу в vcpkg libiconv, читаю «Compatibility:✓ x64-windows», делаю vcpkg install, оно пытается скомпилить и падает с ошибкой. В общем я не очень понял - там все сборки «нативные» (раз указано в Compatibility), или же нужно обмазываться mingw? Если нужно тащить какое-то окружение, то дальше рабираться и читать доки не стану (ибо в проекте много всякого std20, сильно сомневаюсь, что скомпилится).

★★

Последнее исправление: kvpfs (всего исправлений: 1)
Ответ на: комментарий от EXL

Дело вчера было, сейчас под рукой нет. Но что-то было от нинзи про какие-то триплеты. У меня же вопрос простой - для сборки unix пакетов нужно тащить mingw или же там что-то адаптированное и собрать может MSVC? Иначе зачем они писали «Compatibility:✓ x64-windows»?

kvpfs ★★
() автор топика
Ответ на: комментарий от kvpfs

там msys2 сам скачивается при необходимости. На MSVC должно всё собираться.

Ошибки могут быть разные.

Например, если ты собираешь на fat32 или exFAT, то пока не соберётся: https://github.com/microsoft/vcpkg/issues/19524 Но в VS 2022 17.3 Preview 2 это уже поправлено.

fsb4000 ★★★★★
()
Ответ на: комментарий от fsb4000

там msys2 сам скачивается при необходимости

Ну т.е. надо обмазываться, следовательно и свой проект (для кторого нужны зависимости) тоже должен собираться mingw, а он мне запомнился как вечно сильно отстающий по новым фичам, которых у меня валом.

А я vcpkg репозиторий глянул, думаю - «как здорово, всё это можно на винде нативно собрать, может вкрутили в винду какую прослойку для совместимоти штатную».

kvpfs ★★
() автор топика

Спасибо

kvpfs ★★
() автор топика
Ответ на: комментарий от kvpfs

следовательно и свой проект (для кторого нужны зависимости) тоже должен собираться mingw

Не знаю, вроде нет.

А так в msys2, gcc 12.1.

К тому же libiconv это вроде С, а значит там не должно быть ABI проблем.

У меня собралось на Win 10 и VS 2022. Вот лог: https://pastebin.com/VHWBTNzj

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от fsb4000

Спасибо. Кажется я писал

.\vcpkg install libiconv

вместо

.\vcpkg install libiconv:x64-windows

как в логе. Жаль что не видно какой компиль отработал, но судя по наличию патча для MSVC «– Applying patch 0002-Config-for-MSVC.patch», наверное он компилил. Надо ещё разок попробовать.

kvpfs ★★
() автор топика
Последнее исправление: kvpfs (всего исправлений: 1)
Ответ на: комментарий от kvpfs

Вспомнил ещё об одной возможной ошибке с vcpkg.

vcpkg нужно чтобы был установлен английский языковой пакет у компилятора.

Если английского нет, то такой компилятор не подходит и будет ошибка что нет подходящего компилятора для выбранного триплета.

По-моему можно и несколько языковых пакетов установить, главное чтобы английский был установлен.

https://imgur.com/a/gFIXcHI

Update: Видимо это уже исправили, и теперь любой языковой пакет подходит. Я посмотрел в cmake-vars-x64-windows-rel.cmake.log и build-x64-windows-rel-out.log там был выбран компилятор на русском.

C:\tools\vcpkg\buildtrees\libiconv\src\1.17-e2a53830aa.clean\lib\johab_hangul.h(252): warning C4244: return: ЇаҐ®Ўа §®ў ­ЁҐ "__int64" ў "int", ў®§¬®¦­  Ї®вҐап ¤ ­­ле
C:\tools\vcpkg\buildtrees\libiconv\src\1.17-e2a53830aa.clean\lib\loop_unicode.h(49): warning C4244: return: ЇаҐ®Ўа §®ў ­ЁҐ "__int64" ў "int", ў®§¬®¦­  Ї®вҐап ¤ ­­ле
C:\tools\vcpkg\buildtrees\libiconv\src\1.17-e2a53830aa.clean\lib\loop_unicode.h(93): warning C4244: return: ЇаҐ®Ўа §®ў ­ЁҐ "__int64" ў "int", ў®§¬®¦­  Ї®вҐап ¤ ­­ле
C:\tools\vcpkg\buildtrees\libiconv\src\1.17-e2a53830aa.clean\lib\loop_unicode.h(144): warning C4244: return: ЇаҐ®Ўа §®ў ­ЁҐ "__int64" ў "int", ў®§¬®¦­  Ї®вҐап ¤ ­­ле
C:\tools\vcpkg\buildtrees\libiconv\src\1.17-e2a53830aa.clean\lib\aliases_aix.h(1): warning C4311: ЇаЁўҐ¤Ґ­ЁҐ вЁЇ®ў: гбҐзҐ­ЁҐ гЄ § вҐ«п Ё§ "char (*)[6]" ў "long"
fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 2)

Всё говорили про вендекапец. А винда ужн на лоре.

ox55ff ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.