The version of GNU Bison on my mac is 2.3 but I know that Bison 2.5 was released long ago. The book Flex & Bison uses version 2.5.
Should I upgrade to 2.5 myself? Is it necessary?
What's the difference between 2.3 and 2.5?
The version of GNU Bison on my mac is 2.3 but I know that Bison 2.5 was released long ago. The book Flex & Bison uses version 2.5.
Should I upgrade to 2.5 myself? Is it necessary?
What's the difference between 2.3 and 2.5?
If you use Brew:
brew tap homebrew/dupes && brew install bison
If you use MacPorts:
sudo port install bison
If you use Fink, they're still on 2.3, just like Apple, so you'll have to edit the package yourself.
If you know how to install Unix software, download it, untar, then configure/make/install as usual.
If all of the above are Greek to you, look at Link and http://macports.org and decide which one looks friendlier to you.
I had the same issue MacOSX 10.9.5.
After doing:
brew install bison
I added this to my bash profile:
export PATH=/usr/local/Cellar/bison/3.0.4/bin:$PATH
(by the time you read this, your version may be different from 3.0.4)
And after I restarted the Terminal it picked up the new version of Bison when I did bison -V
If you are using zsh
:
$ brew unlink bison
$ echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.zshrc
$ export LDFLAGS="-L/usr/local/opt/bison/lib"
$ source ~/.zshrc
$ bison -V
bison (GNU Bison) 3.4.1
Written by Robert Corbett and Richard Stallman.
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
you can install a new version with homebrew:
$ brew install bison
...
This formula is keg-only, which means it was not symlinked into /usr/local.
Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
Some formulae require a newer version of bison.
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/bison/lib
==> Summary
🍺 /usr/local/Cellar/bison/3.0.4: 51 files, 2.2M, built in 74 seconds
But if you run: bison -V
, it will still output 2.3, not the newly install 3.0.4. To enforce this, you can run this:
arganzhengs-MacBook-Pro:thrift argan$ brew unlink bison
Unlinking /usr/local/Cellar/bison/3.0.4... 0 symlinks removed
arganzhengs-MacBook-Pro:thrift argan$ brew link bison
Warning: bison is keg-only and must be linked with --force
Note that doing so can interfere with building software.
arganzhengs-MacBook-Pro:thrift argan$ brew link bison --force
Linking /usr/local/Cellar/bison/3.0.4... 9 symlinks created
arganzhengs-MacBook-Pro:thrift argan$ bison -V
bison (GNU Bison) 2.3
Written by Robert Corbett and Richard Stallman.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
arganzhengs-MacBook-Pro:thrift argan$ source ~/.bash_profile
arganzhengs-MacBook-Pro:thrift argan$ bison -V
bison (GNU Bison) 3.0.4
Written by Robert Corbett and Richard Stallman.
If you use Brew:
brew tap homebrew/dupes && brew install bison
If you use MacPorts:
sudo port install bison
If you use Fink, they're still on 2.3, just like Apple, so you'll have to edit the package yourself.
If you know how to install Unix software, download it, untar, then configure/make/install as usual.
If all of the above are Greek to you, look at Link and http://macports.org and decide which one looks friendlier to you.
So I figured out how to get rid of bison build issues on Mojave and Catalina.
Here's what I did:
$ brew install bison
$ cp /usr/local/opt/bison/bin/bison /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bison
--
Didn't need admin privileges, the cp command will overwrite the bison binary in your Xcode app with the latest one installed by homebrew.
now I can do this:
$ bison -V
bison (GNU Bison) 3.7.1
Been having so many problems building wine on multiple macOS systems running Mojave. Mostly due to this weird need for a library I've never heard of, but this fix got it working.
I used Brew and installed the package. However, this does not update the location of bison. I still see bison 2.3 instead of 2.5.
Then, I found that the location of new bison is different.
bash-3.2$ echo $PATH
/opt/local/bin:/opt/local/sbin:/Users/taposh/anaconda/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/m4/bin/
bash-3.2$ PATH=/usr/local/bison/bin/:$PATH
bash-3.2$ which bison
/usr/local/bison/bin//bison
bash-3.2$ bison --version
bison (GNU Bison) 2.5
Written by Robert Corbett and Richard Stallman.
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Because bison was been installed,the default version on osx is 2.3. So we should do something as follow:
Install a higher version os bison
If you use Brew, try to use this command--brew install bison, it will install bison 3.0.2. The binary package is under /usr/local/Cellar/bison/3.0.4/bin/ in my computer.
Or you can install bison through source code, follow instructions on offical website http://www.gnu.org/software/bison/.
Replace the old one(you need sudo or root permission)
$ which bison --- find the installed path,in my computer it's /usr/bin/bison
$ cd /usr/bin
$ sudo mv bison bison.2.3
$ sudo cp /usr/local/Cellar/bison/3.0.4/bin/bison bison
Then you can install thrift without this problem.
© 2022 - 2024 — McMap. All rights reserved.