Size: a a a

2021 February 01

SZ

Sergey Zhmylove in Modern::Perl
Игорь
Коллеги, кто-нибудь ставил Perl::LanguageServer на винду?

Пробую ставить и спотыкаюсь на установке зависимости IO::AIO
In file included from AIO.xs:1:0:
libeio/xthread.h:37:21: фатальная ошибка: pthread.h: No such file or directory
#include <pthread.h>
                    ^
компиляция прервана.


Гугл говорит что pthread.h - это заголовок API Unix / Linux (POSIX) для потоков. И чтобы его использовать, можно попробовать запустить сборку в Cygwin.

Я, к сожалению, не очень понимаю в сборку сишного кода. На винде стоит Strawberry Perl, в его комплект входит MinGW, который по идее должен решать проблему если бы знал где взять pthread.h.

Может кто-нибудь подсказать, я могу использовать Strawberry Perl на винде или он слишком сырой и лучше брать perl из Cygwin?

Если можно обойтись Strawberry Perl, то где взять pthread.h и куда его положить чтобы он подцепился (если вообще бывает совместимый с виндой).
источник

SZ

Sergey Zhmylove in Modern::Perl
Это strawberry и встроенный mingw
источник

SZ

Sergey Zhmylove in Modern::Perl
Хедер у меня лежит в \Strawberry\c\x86_64-w64-mingw32\include\
источник

SZ

Sergey Zhmylove in Modern::Perl
Либа там же, в ..\lib
источник

SZ

Sergey Zhmylove in Modern::Perl
Strawberry не сырой, он во всех отношениях, по-моему, лучше active perl, кроме менеджера пакетов. Но я использую cpm
источник

И

Игорь in Modern::Perl
Интересно...у меня так-же на этом примере
источник

И

Игорь in Modern::Perl
Теперь вообще не понимаю почему такая ошибка возникает.
источник

SZ

Sergey Zhmylove in Modern::Perl
Игорь
Интересно...у меня так-же на этом примере
У меня такое чувство, что ломается он на другом, у меня io::aio тоже не компилится
источник

SZ

Sergey Zhmylove in Modern::Perl
btw, винда и aio -- забудь. Даже ae плохо работает на ней
источник

И

Игорь in Modern::Perl
Ну судя по всему так. Просто я зацепился за сообщение в логе что
In file included from AIO.xs:1:0:
libeio/xthread.h:37:21: фатальная ошибка: pthread.h: No such file or directory
#include <pthread.h>
источник

SZ

Sergey Zhmylove in Modern::Perl
У меня ошибка с тем, что siginfo_t неизвестный тип
источник

SZ

Sergey Zhmylove in Modern::Perl
Что логично
источник

SZ

Sergey Zhmylove in Modern::Perl
Ибо не венде нет sys/signal и siginfo
источник

И

Игорь in Modern::Perl
Там строкой выше:
gcc -c   -s -O2 -DWIN32 -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2   -DVERSION=\"4.75\" -DXS_VERSION=\"4.75\"  "-IC:\strawberry-perl-5.28.1.1-32bit\perl\lib\CORE"   AIO.c


Смущает, что нет флага -pthread как у тебя. Похоже нужно какой-то make файл править в AIO. Флага недосыпали.
источник

SZ

Sergey Zhmylove in Modern::Perl
Игорь
Там строкой выше:
gcc -c   -s -O2 -DWIN32 -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2   -DVERSION=\"4.75\" -DXS_VERSION=\"4.75\"  "-IC:\strawberry-perl-5.28.1.1-32bit\perl\lib\CORE"   AIO.c


Смущает, что нет флага -pthread как у тебя. Похоже нужно какой-то make файл править в AIO. Флага недосыпали.
По-моему, никто и не пытался. Потому что оно всё равно не будет работать, увы
источник

SZ

Sergey Zhmylove in Modern::Perl
Хочешь aio -- используй вм с ляликсом
источник

SZ

Sergey Zhmylove in Modern::Perl
Ну или wsl, хотя по-моему, это даже хуже
источник

И

Игорь in Modern::Perl
Судя по исходникам Perl::LanguageServer они вроде как в винду пытались.

Во всяком случае https://metacpan.org/source/Perl::LanguageServer::IO#L25 и дальше видно, что под виндой без вызова aio_read должно работать.

Я поэтому и подумал, что раз такое есть, значит они собирали его под виндой. А значит и зависимости как-то встать должны были.
источник

И

Игорь in Modern::Perl
Да и тесты какие-то успешные есть на mswin32 у Perl::LanguageServer. Как они это сделали непонятно))
источник

IB

Ivan Bessarabov in Modern::Perl
Это фотка экрана с телефона? Я правильно помню что у тебя на компне нет телеграма, что он только на телефоне?
источник