ejabberd 'make' 通过“无法运行已编译的 C 程序”
Posted
技术标签:
【中文标题】ejabberd \'make\' 通过“无法运行已编译的 C 程序”【英文标题】:ejabberd 'make' through "cannot run compiled C program"ejabberd 'make' 通过“无法运行已编译的 C 程序” 【发布时间】:2016-02-14 00:33:49 【问题描述】:我正在尝试在 CentOS 6.x 上安装 ejabberd,当我运行“make”命令时,它会出现以下错误。
ejabberd]# make
rm -rf deps/.got
rm -rf deps/.built
/usr/lib/erlang/bin/escript rebar get-deps && :> deps/.got
==> goldrush (get-deps)
==> lager (get-deps)
==> p1_utils (get-deps)
==> p1_cache_tab (get-deps)
==> p1_tls (get-deps)
==> p1_stringprep (get-deps)
==> p1_xml (get-deps)
==> p1_stun (get-deps)
==> esip (get-deps)
==> p1_yaml (get-deps)
==> jiffy (get-deps)
==> oauth2 (get-deps)
==> xmlrpc (get-deps)
==> p1_zlib (get-deps)
==> p1_iconv (get-deps)
==> rel (get-deps)
==> ejabberd (get-deps)
checking for gcc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in `/root/ejabberd/deps/p1_tls':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
ERROR: Command ['get-deps'] failed!
make: *** [deps/.got] Error 1
你能帮我解决这个问题吗?我已经安装了 Erlang-17.5 和所有必需的“开发工具”。谢谢。
【问题讨论】:
上面写着See config.log for more details
,config.log 没有显示任何有用的信息吗?您可以尝试yum groupinstall "Development Tools" -y
以确保您拥有所有正确的软件包,然后再试一次。虽然不是以 root 身份运行“make”(构建不需要或具有 root 访问权限),然后您可以以 root 身份运行“make install”。
我的猜测是您没有安装真正的 C 编译器,而只是安装了一些无法编译真正程序的默认值。安装 gcc,然后重新配置。
@Michael - 你想看看我的 config.log 文件吗?。我安装了你提到的所有“开发工具”,但它对我没有用。
@Steve - 我安装了 gcc。但我怎样才能确定它是真的还是假的呢?
尝试重新运行配置。如果它说“检查 gcc”,它应该报告找到 gcc 而不是 cc。
【参考方案1】:
当您收到此错误时,请确保安装
# yum install glibc-headers
这将解决您的错误。
【讨论】:
【参考方案2】:一个有效的 gcc:# yum install gcc-c++
即c++ 编译器的安装还将安装使 gcc 功能齐全的依赖项:glibc-devel、glibc-headers、kernel-headers。
【讨论】:
我单独安装 glibc-headers。它对我有用。所以这意味着“# yum install gcc-c++”不会安装依赖项。顺便说一句,非常感谢。从您的帖子中我得到了解决方案。以上是关于ejabberd 'make' 通过“无法运行已编译的 C 程序”的主要内容,如果未能解决你的问题,请参考以下文章