我正在尝试在安装了GCC 4.9的OS X 10.8上安装ncurses
5.9。我在./configure
目录中运行ncurses
时没有出现任何错误或警告,但是当我运行make
时,我得到gcc: error: unrecognized command line option ‘-no-cpp-precomp’
。在谷歌搜索问题(并尝试出来)时,我发现--no-cpp-precomp
(有两个破折号,即长旗形式)是一个有效的命令。
我不确定是什么促使GCC运行无效命令 - 无论是make
,还是ncurses
本身指定的命令。
有什么方法可以解决这个问题吗?如果是这样,怎么样?
编辑:我尝试使用文本编辑器手动将./configure
文件中的引用从-no-cpp-precomp
更改为--no-cpp-precomp
,尽管GCC似乎接受了{{{ 1}}选项。之后,我尝试运行--no-cpp-precomp
,并得到了这个:
autoreconf
使用configure:6558: error: possibly undefined macro: AC_DIVERT_HELP
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /opt/local/bin/autoconf failed with exit status: 1
选项运行后:
m4_pattern_allow
无论如何都要运行autoreconf: 'configure.ac' or 'configure.in' is required
:
./configure && make
答案 0 :(得分:3)
看起来这已经在ncurses 5.9
的最新补丁中得到修复可在此处找到5.9来源:ftp://invisible-island.net/ncurses/ncurses-5.9.tar.gz
最新的修补程序位于ftp://invisible-island.net/ncurses/5.9/,但最新的汇总修补程序似乎有修复:ftp://invisible-island.net/ncurses/5.9/patch-5.9-20130504.sh.gz
要应用补丁,请获取上面的2个文件:
$ tar xvf ncurses-5.9.tar.gz
$ cd ncurses-5.9
$ gzip -dc ../patch-5.9-20130504.sh.gz | sh
答案 1 :(得分:0)
--no-cpp-precomp
是一个过时的Apple GCC选项,它应该生成一个警告而不是错误但是如果-Werror
标志传递给编译器,它将在警告失败,无论哪种方式,你将不得不删除它从构建脚本手动,然后运行autoreconf
,或者您可以直接从configure
脚本中删除它。
答案 2 :(得分:0)
我意识到这已经很老了,但是由于遇到了同样的问题(需要在Mac Yosemite 10.10和GCC 4.9上进行构建),也许它也会对其他人有所帮助。即使PATH中的'gcc'是GNU,看起来configure脚本也正在检测它是否是Mac,并假设使用了clang。似乎他们将检测逻辑固定在较新的版本中。我在Boost 1.37中发现了相同的问题,并且它在Boost 1.55之前(在某个地方)已得到修复。