系统:CentOs6.9

gcc版本:5.1.0

github上拉取vim工程之后,cd src,执行一下命令:

$ ./configure
$ sudo make
gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE= -o objects/arabic.o arabic.c
gcc: error trying to exec 'cc1': execvp: No such file or directory
make: *** [objects/arabic.o] Error

发现找不到cc1。全局找下cc1在哪:

$ sudo find / -name cc1
/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/5.1./cc1
/usr/libexec/gcc/x86_64-redhat-linux/4.4./cc1
/root/software/gcc-5.1-build/gcc/cc1
/root/software/gcc-5.1-build/stage1-gcc/cc1
/root/software/gcc-5.1-build/prev-gcc/cc1

建立一个软连接:

$ sudo ln -s /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/5.1./cc1 /usr/bin/cc1

重新编译一下:

$ sudo make
gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE= -o objects/arabic.o arabic.c
In file included from os_unix.h::,
from vim.h:,
from arabic.c::
/usr/include/stdio.h::: fatal error: stddef.h: No such file or directory
compilation terminated.
make: *** [objects/arabic.o] Error

发现还是有问题,而且这个报错报在了库文件

全局找下这个文件:

$ sudo find / -name stddef.h
/usr/local/lib/gcc/x86_64-unknown-linux-gnu/5.1./include/stddef.h
/usr/include/linux/stddef.h
/usr/lib/gcc/x86_64-redhat-linux/4.4./include/stddef.h
/root/software/gcc-5.1-build/gcc/include/stddef.h
/root/software/gcc-5.1-build/stage1-gcc/include/stddef.h
/root/software/gcc-5.1-build/prev-gcc/include/stddef.h
/root/software/gcc-5.1./gcc/ginclude/stddef.h
/root/software/gcc-5.1./libstdc++-v3/include/c_compatibility/stddef.h

发现是能找到,不过报错的文件的位置,是/usr/include/stdio.h,感觉是路径问题了。

尝试用sudo权限运行./configure:

$ sudo ./configure
configure: loading cache auto/config.cache
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... (cached) gcc
checking whether the C compiler works... no
configure: error: in `/home/haiming.li/opensource/vim/src':
configure: error: C compiler cannot create executables
See `config.log' for more details

同样通过find命令,找到config.log所在的位置是src/auto下面,打开看看:

感觉很莫名的报错,而且为何sudo与非sudo执行的时候结果差别那么大呢?

猜测是sudo的gcc跟非sudo下的gcc,版本不一致,尝试验证下:

$ which gcc
/usr/local/bin/gcc $ sudo which gcc
/usr/bin/gcc

果然,sudo和非sudo下,gcc调用的执行程序不一样。/usr/local/bin/gcc --version 和 /usr/bin/gcc --version的执行结果是一样的,这个比较莫名。不过如果做下软连接,我相信能解决问题。

先对原来的/usr/bin下的gcc做下备份:

$ cd /usr/bin/
$ sudo mv gcc gcc_bak
$ sudo ln -s /usr/local/bin/gcc gcc

继续:

$ ./configure
$ sudo make

然后报了类似这样的错误:

/opt/local/bin/gcc-mp-4.8 -c -I. -Iproto -DHAVE_CONFIG_H   -I/usr/local/include  -g -O2 -D_FORTIFY_SOURCE=       -o objects/buffer.o buffer.c
In file included from vim.h::,
from buffer.c::
auto/osdef.h::: error: conflicting types for 'printf'
extern int printf __ARGS((char *, ...));

google之后,只发现了一个日文网页,而且说得好像不是一个问题,灵机一动下,make clean了一下,然后make就通过了,接着

$ sudo make install

执行下vim:

$ vim
-bash: /usr/bin/vim: No such file or directory

在编译日志里面找了找,感觉vim应该是在/usr/local/bin/vim:

$ /usr/local/bin/vim --version
VIM - Vi IMproved 8.1 ( May , compiled May ::)
Included patches: -... 果然在这里,做下软连接:
$ sudo ln -s /usr/local/bin/vim /usr/bin/vim

OK,大功告成,手动编译vim8.1搞定。

Centos手动编译安装vim8的更多相关文章

  1. CentOS手动编译安装gcc

    最近尝试了fedora.ubuntu.mint.debian.opensuse等多种linux发行版,与CentOS比较之后还是感觉之前用的CentOS比较熟悉,比较习惯.现在CentOS的最新版本为 ...

  2. centos手动编译安装apache、php、mysql

    64位centos 5.5手动安装lamp,要求curl.json.pdo_mysql.gd,记录如下. centos 5.4.5.5.5.6的内核都是2.6.18,都可以安装php 5.3. 卸载旧 ...

  3. LNAMP服务器环境搭建(手动编译安装)

    LNAMP服务器环境搭建(手动编译安装) 一.准备材料 阿里云主机一台,操作系统CentOS 6.5 64位 lnamp.zip包(包含搭建环境所需要的所有软件) http://123.56.144. ...

  4. centos mysql 编译安装

    centos mysql 编译安装 1.安装 创建MySQL用户 sudo useradd mysql 下载MySQL的源码包,我们这里使用的时5.5.18 安装依赖 sudo yum -y inst ...

  5. web服务器学习1---httpd-2.4.29源码手动编译安装

    环境准备: 系统:CentOS 7.4 软件:httpd-2.4.29 一  Apache主要特点 apache服务器在功能,性能和安全性等方面表现比较突出,可以较好地满足web服务器地应用需求.主要 ...

  6. 手动编译安装tmux

    tmux的好处就不多说了,总之是多屏管理的神器.通常我们用系统通用的安装方式可以安装到tmux,但有时候,安装到的可能不是我们所需要的版本,又或者软件源里面没有带tmux.这个时候就需要手动编译安装了 ...

  7. centos下编译安装lnmp

    centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...

  8. CentOS 7 编译安装 Code::Blocks

    CentOS 7 编译安装 Code::Blocks yum install cairo-devel yum install pango-devel yum install atk-devel yum ...

  9. Debian/Ubuntu手动编译安装MongoDB C++11驱动及驱动测试

    本文章仅限cnblogs网站内转载!请某网站自觉,遵纪守法,尊重原创! 系统环境情况: 最小化.无桌面环境 新安装的Debian 8 Server 版本操作系统虚拟机一台 手动编译安装MongoDB ...

随机推荐

  1. [Scala]Scala学习笔记三 Map与Tuple

    1. 构造映射 可以使用如下命令构造一个映射: scala> val scores = Map("Alice" -> 90, "Kim" -> ...

  2. 头文件string.h中的函数及使用方法

    来源:http://blog.csdn.net/tsyj810883979/article/details/5116817 字符串拷贝1 @函数名称:   strdup函数原型:   char *st ...

  3. InnoDB MVCC RR隔离级别下的数据可见性总结

    一.背景 熟悉数据库隔离级别的人都知道,在RR(可重复读)隔离级别下,无论何时多次执行相同的SELECT快照读语句,得到的结果集都是完全一样的,即便两次SELECT语句执行期间,其他事务已经改变了该查 ...

  4. vs中删除nuget包

    最近发现有些解决方案都是用来nuget包,这个偶尔能跑,但是有一个爱抽风的毛病,生成解决方案的时候报错:无法连接到远程服务器,真几把蛋疼.... 就是下图的情况 网上找了下不是很容易找到处理这个问题的 ...

  5. 分布式使用Redis

    为什么我们做分布式使用Redis? https://www.cnblogs.com/yaodengyan/p/9717080.html 绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只 ...

  6. WPF导学目录

    很早就知道WPF这个东西,做项目中没用到,也就没去整理学习.作为winForm的升级版,未来windows桌面应用程序的趋势,有些公司招聘需求中也会提到熟悉WPF,于是就整理学习了一下WPF. 主要参 ...

  7. Redis、Memcache和MongoDB

    一.Memcached Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key.value的字节大小以及服务器硬件性能,日常环境中QPS高峰 ...

  8. (转)Makefile经典教程(掌握这些足够)

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客: http://blog.csdn.net/haoel/article/details/2886 makefile很重 ...

  9. Oracle 数据库备份还原(Expdp/impdp)记录

    最近公司将原数据库服务器切换.之前没整过这块,也是一堆的度娘.经过不停的摸索,终于成功了.现在将这份艰辛记录下来,方便自己以后查阅的同时,方便有类似需求的同学参考. 我们此次切换共分:ERP.LOS. ...

  10. 经典ARP协议讲解,一定要看

    以太网协议是目前最流行的通信协议之一.从底层到高层协议家族非常庞大.今天为您介绍一下经常用到却比一定知道的协议. 在链路层上,主机和路由器用他们的物理地址来标志,即48位的物理地址,也是是我们通常所说 ...