2011-05-03 14 views
12

http://msdn.microsoft.com/en-us/library/aa730877%28vs.80%29.aspx okudum, ancak bu belge VS 2005'teydi. Belgede '.Rules File in Visual C++. VS 2010, .rules dosyasını desteklemiyor gibi görünüyor, bunun yerine, özel derleme kuralları için .targets dosyasını kullanıyor gibi görünüyor.Visual Studio 2010'da flex & bison'ı nasıl kullanabilirim?

VS 2010'da esnek & bizon kullanmayı bilen var mı? Teşekkürler. dosyayı hedef

+1

; Sanırım bunu gnu-flex ile etiketlemeliydin; Adobe Flex değil. Devam ettim ve yeniden etiketledim. – JeffryHouser

+0

Yeniden etiketleme için teşekkürler, www.Flextras.com. Ama hiç kimse benim sorumun cevabını bilmiyor. : -p VS 2005'i kurmak zorunda mıyım? – sky

+1

2010'dan önceki Visual C++ sürümleri, VCBuild yapı sistemini kullandı; Visual C++ 2010, MSBuild sistemine taşındı. Hedefler/kurallar/özellikler tamamen farklıdır. Eminim, Flex ve Bison'u Visual C++ 2010 ile birlikte kullanabileceğinizden emin olabilirsiniz, ancak birileri henüz yeni yapılandırma talimatlarını bir araya getirip yayınlamadıkça, oldukça fazla iş gerektirecektir (ve muhtemelen MSBuild'in oldukça iyi anlaşılması). –

cevap

3

iyi haber, örnek yükleme 2010

  • bir dönüşümden sonra çalışır. Vs2010 dönüştürücü ile açın ve bu dönüşüm, 2005 * .rules'den 2010 * .targets, * .props ve * .xml dosyalarına dönüşümü gerçekleştirecektir.
  • cygwin'i kurun ve flex, sourcecode, Bison ve kaynak kodunu ekleyin.
  • örnek alışkanlık nedeniyle bağımlılıkları çalıştırmak rağmen şimdi oluşturmak edebiliyoruz sizin Çalıştırılabilir yolları listenin sonuna ve listenize

yolları dahil sonuna kaynağına yoluna cygwin yolunu ekleyin senin kendi projeniz ve kendi lexer ve ayrıştırıcınızı oluşturun. Sahip olacağınız tek konu, unistd.h'nin kullanılmasıdır. alışkanlık bu ekleyin ve:

#define YY_NO_UNISTD_H 

Ben size esnek & bizon kitapta 2010 yılında da ayrıştırıcı inşa gereken şeylerin dinlenmeye düşünüyorum.

+0

Tek yakalama çıktısını yakalamak çalışmıyor. Sadece bizon ve flexin tetiklendiğini ve hata kodlarını (eğer varsa) gösterir. Ancak bunun üzerinde çalışıyorum ve muhtemelen yeni oluşturulmuş hedefler blogumda kurulumda uygun bir eğitici ile dosyalanır. –

+0

Visual Studio için bile Windows'ta Flex ve Bison'u kullanmak için Cygwin'e ihtiyacınız yoktur. – user34660

1

Bu soru eski ama Flex için benim gibi & Bison yenilere: Kullanılacak here edinilebilir aracı "esnek-bizon kazan" ve aynı zamanda MSVS2010 +

Not ++ projesini VS C nasıl yapılandırılacağı bir öğretici içerir yapabilirsiniz: Bağlantı çalışmıyorsa, google'ı kullanın ve "Win flex-bison" ;-)'yi arayın

+0

Flex ve Bison GitHub'dan taşınıyor ama özel Windows sürümleri GitHub'dan neresinde bilmiyorum. Onlar hala SourceForge'da var ve VS 2015'te çalışıyorlar ve umarım da VS 2017'de çalışırlar veya birileri onları dönüştürür. – user34660

1

Jarda'nın belirttiği Özel Yapı Kuralları en kolay olanıdır. Aşağıdaki Özel Yapı Kurallarına bir alternatiftir.

Onları bu şekilde kullanmak için nasıl kullanacağınızı bilmiyorsanız, önceden derlenmiş üstbilgileri kullanmayın. Önceden derlenmiş üstbilgileri kullanana kadar makro yeniden tanımlama ve erken dosya sonu hakkında şikayette bir sorun yaşadım.

"Win32 Console Application" oluşturun ve bunu boş bir proje haline getirin (oluşturulan kaynak kodu yok). Örneğin, proje ismim için "SimpleFlex" kullanıyorum.

İsteğe bağlı: VS girişleri için filtreleri özelleştirebilirsiniz, böylece Kaynak dosyalar klasöründe Flex giriş dosyası gösterilir. Kaynak Dosyalar klasörünün özelliklerinde, uzantı listesine uzantı ("l" veya "lex") ekleyin.

Ardından, proje için "l" (veya "lex") uzantısına sahip bir dosya oluşturun; örneğin, "SimpleFlex.l". Dosyada, aşağıdaki örneklerden birini kullanın. Ardından, proje ayarlarında Özel Oluşturma Adımı oluşturun. Custom Builds'a aşina değilseniz, proje ayarlarında "Custom Build Step" sekmesine bakın.Özel Oluştur Adım için aşağıdaki kullanın:

Açıklama: Üretme sözel çözümleyici

Komutları: C: \ Software \ FLEX252 \ flex.exe -o $ (ProjDir) \ $ (inputName). cpp $ (InputPath)

Çıkışlar: $ (ProjDir) \ $ (inputName) .Cpp

:

Açıklama aslında

Komutları Flex, çıktı dosyası ve giriş dosyasının yolu oluşur kullanmak istediğiniz herhangi bir şeydir. Flex'in yolunu, sisteminiz için doğru olan her şeye göre değiştirmeniz gerekecektir.

Çıkışlar

çıktı dosyasının dosya adını belirtir.

Özel Oluştur Adım oluşturarak Flex giriş dosyasının kodunu sağladıktan sonra, dosyayı derlemek. Sadece derlemek için Ctrl-F7'yi kullanabilirsiniz. Aslında, bu noktada, sadece projeyi inşa edebilirsiniz; tarayıcının (cpp dosyası) oluşturulması dışında yapılabilecek herhangi bir şey yoktur. Özel derleme Flex'i çalıştırmalı, ancak bunu bilmenin tek yolu, açıklamanın Build çıktısında gösterilmesidir. cpp dosyası oluşturulmuş olmalı ve daha sonra projeye eklendi olabilir. Yukarıda açıkladığım hataları (makro yeniden tanımlamalar ve dosya sonu erken dönem) alırsanız, proje için önceden derlenmiş üstbilgileri kapatın.

bizon prosedürü çok benzerdir.

Bu soruya ilişkin benim karışıklık dayanarak