Кто-нибудь сумел использовать Io
аддоны типа Regex
или OpenGL
под Cygwin
на Windows 7 32 bit
?
Примечания:
- Если это проблема
ASLR
, я хочу оставить включенной ASLR
, поэтому я не проверял ее отключенной.
- Мой
Cygwin
более новый, но не обязательно блеющий край (gcc (GCC) 4.3.4 20090804 (release) 1
)
Полная история:
На моей стороне мне нужны некоторые настройки для компиляции и запуска Io
в Cygwin
. Чтобы увидеть мой процесс сборки, мелкие исправления и последние изменения, чтобы сделать библиотеки DLL доступными для Cygwin
, см. http://permalink.de/tino/iocyg
Моя ОС - Windows 7 starter 32 bit
, поэтому ASLR
включено. Здесь речь идет о сборках под Cygwin
, а не MinGW
, так как под MinGW
аддон Regex
не компилируется в любом случае из-за отсутствия pcre
lib по умолчанию.
В Cygwin мне не удалось использовать некоторые аддоны, такие как Regex
или OpenGL
, но из-за следующей ошибки (обратите внимание, что Cygwin
ищет DLL
s в поиске PATH
, поэтому я должен добавить Обращаемся к нему, отсюда env
):
$ env PATH="$PATH:/usr/local/lib" io
Io 20090105
Io> Regex
==> Regex_0xcd1788:
[output skipped]
Io> "e" matchesRegex("." asRegex)
IoState error: missing proto 0x52128c
IoState_protoWithInitFunction() Error: missing proto
Погуглив на эту ошибку, я нашел несколько сообщений, касающихся того факта, что Io
использует указатель функции в качестве хеша для установки proto
. Этот адрес может измениться в ситуации DLL
, поэтому хэш прерывается. Однако, изучая код iovm/source/IoState.c
, я не могу понять, действительно ли это является источником проблемы или нет (пока).
Если углубиться в это:
Io> "a" matchesOfRegex("o") anchored
==> nil
Io> "a" matchesOfRegex(".") anchored
IoState error: missing proto 0x1983128c
IoState_protoWithInitFunction() Error: missing proto
Это можно отследить до использования Range
addon в функции IoRegexMatches_searchFrom_withOptions_
с Regex/source/IoRegexMatches.c
. И вот я сейчас застрял.