Pergunta

Eu estou usando Flex (analisador léxico, não Adobe Flex) em um projeto. No entanto, eu quero ser capaz de compilar em plataformas Windows, bem como, mas a versão do Windows 's versão mais recente é de apenas 2.5.4a, por isso não irá compilar meu arquivo para a versão 2.5.35. E não, eu não posso fazer o downgrade para a versão mais alta suportada do Windows.

Alguém sabe sobre os planos para atualizar a versão do Windows, ou tem uma sugestão para compilar em janelas de qualquer maneira?

Foi útil?

Solução

Você pode perguntar na lista de discussão, ou se envolver no Flex projetar-se. Eu acho que o código-base para Flex permaneceu estática por um tempo, mas eu não sei quem mantém a porta do Windows. Nesse ínterim ...

Eu recomendaria incluindo a fonte produzido em seu projeto.

  1. Gerar o lexer em um sistema Linux para produzir seus arquivos lex.c / lex.h (ou qualquer outro)
  2. Incluir esses arquivos em sua fonte Win32 C antes de construir

Se você não tem acesso directo a um sistema Linux, uma máquina virtual pode ser uma boa idéia. A fonte Flex deve ser queixa a algum padrão C que se baseia no Windows, mas a maioria das diferenças POSIX podem ser alterados para usar Win32 API bastante facilidade.

Talvez distribuir como:

/src/source_files.c
/src/lex.l
/src/win32_lex/lex.c

Desta forma, sistemas com a Flex moderna pode gerar a fonte do arquivo lex, e sistemas Windows compilando a fonte pode usar os arquivos complementares pré-processados ??C.

Curto de usar algum espaço do usuário POSIX (Cygwin ou qualquer outro).

Um pouco de ajustes necessários, mas não é que a portabilidade para você !

Outras dicas

Windows versões do Flex 2.5.35 do existem, mas, infelizmente, eles não são auto-suficientes. Você pode baixar a construção mingw aqui , ea construção Cygwin aqui ; consulte também outra pergunta stackoverflow . Cada construção exige que o seu respectivo (mingw ou Cygwin) Kernel ser instalado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top