Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Flex and Bison


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
8 replies to this topic

#1 BornToCode   Members   -  Reputation: 948

Like
0Likes
Like

Posted 12 December 2012 - 02:42 AM

I am been looking for this for a while. So i am wondering does anyone ever was able to build flex and bison under Visual Studio. Everything that i am finding are saying i need to use GCC. From what i have seen so far GCC does not work well under windows. I keep getting all these segfaults when i use it.

Sponsor:

#2 rnlf   Members   -  Reputation: 1185

Like
0Likes
Like

Posted 12 December 2012 - 06:48 AM

GCC (MinGW) works just fine under Windows. Haven't tried flex and bison though. If you were a bit more specific in your error description, it might be easier to help you.

my blog (German)


#3 SiCrane   Moderators   -  Reputation: 9662

Like
0Likes
Like

Posted 12 December 2012 - 09:18 AM

I just use cygwin's flex and bison rather than compiling from scratch.

#4 BornToCode   Members   -  Reputation: 948

Like
0Likes
Like

Posted 12 December 2012 - 02:00 PM

Sorry about that i should be a little more clear. The problem is that i have Bison/Flex .exe i compile my grammar and it gives me back the .h and .cpp files. Now what i want to do is be able to add those files into my C++ project and build it in Visual studio. But from the source code that Bison/Flex is generating, i cannot build it in Visual studio since it has a bunch of dependecies that MSVC doesn't have. Using Mingw gcc it works fine. But when i build my engine with GCC on windows i am getting all sorts of crash. So i am trying to find a way to get the source generated by bison/flex to compile under MSVC. Has anyone every done that. @rnlf The latest version of Mingw 4.6.1 i believe has a bunch of bugs. My code compiles fine but whenever i execute it it just crash. I am running Windows 7

Thanks

Edited by BornToCode, 12 December 2012 - 02:03 PM.


#5 BornToCode   Members   -  Reputation: 948

Like
0Likes
Like

Posted 12 December 2012 - 02:58 PM

You know what guys i managed to fix it. It was stupid of me, i find out i can replace unistd.h with io.h

Thanks

#6 SiCrane   Moderators   -  Reputation: 9662

Like
0Likes
Like

Posted 12 December 2012 - 04:23 PM

If your code runs without runtime errors with one compiler but doesn't with another compiler, chances are the problem is your code and not the compiler. You may be relying on implementation defined behavior, or worse undefined behavior. Rather than writing off gcc as buggy, it would probably be a good idea to figure out the sources of the segmentation faults.

#7 BornToCode   Members   -  Reputation: 948

Like
1Likes
Like

Posted 12 December 2012 - 05:11 PM

Well the latest version of GCC under windows is buggy. You can look for that online and you will find a ton of links that talks about it. The problem with flex and bison had nothing to do with GCC. What i meant when i say that is that when i build my engine with GCC instead of Visual Studio and run it. It segfault as soon as the application starts. But using gcc 4.5.3 instead of the 4.6 works fine. So you trying to tell me there is nothing wrong with GCC. I think you need to look it first before you start telling me to figure things out.

#8 SiCrane   Moderators   -  Reputation: 9662

Like
1Likes
Like

Posted 12 December 2012 - 06:19 PM

A quick web search for gcc 4.6 doesn't turn up any hits for anything that indicates that it's completely broken, even when checking projects notorious for uncovering compiler errors like LLVM. And code that works fine on one compiler and doesn't work with another, even for different versions of the same compiler, is generally an indication that your code is doing something non-kosher. So yes, I would suggest you investigate the source of the segfault and double check to see if it really is the compiler or something you are doing wrong. Seriously, if you're programming in C++ you should be welcoming any potential warning signs that there's something wrong in your code rather than ignoring them.

#9 L. Spiro   Crossbones+   -  Reputation: 14197

Like
1Likes
Like

Posted 12 December 2012 - 08:07 PM

The original poster’s troubles are warranted. Flex/Bison don’t emit code out-of-the-box that can compile on any compiler I have tried.
I have made a utility program that is called by a batch file to go over the generated files and replace certain things.

Some of them are related to includes, some of them are specifically to fix errors that happen in one compiler and not another. For example, “stack<T>> has to be replaced with “stack<T> >” to compile on GCC.

There are also many different versions of Flex/Bison and in my experience they also generate very different code. As a result I refuse to upgrade mine since all upgrades result in a plethora of issues to fix in order to get it running. As such this may no longer be the case, but my version is recent and no longer uses unistd.h. So what I said about it not being able to just compile out-of-the-box may vary depending on your version, but neither of the 2 versions I have used were able to do so, and historically Flex’s/Bison’s emitted code itself is the problem.


L. Spiro
It is amazing how often people try to be unique, and yet they are always trying to make others be like them. - L. Spiro 2011
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
I went to my local Subway once to find some guy yelling at the staff. When someone finally came to take my order and asked, “May I help you?”, I replied, “Yeah, I’ll have one asshole to go.”
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS