Centos手动编译安装vim8
系统: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的更多相关文章
- CentOS手动编译安装gcc
最近尝试了fedora.ubuntu.mint.debian.opensuse等多种linux发行版,与CentOS比较之后还是感觉之前用的CentOS比较熟悉,比较习惯.现在CentOS的最新版本为 ...
- 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. 卸载旧 ...
- LNAMP服务器环境搭建(手动编译安装)
LNAMP服务器环境搭建(手动编译安装) 一.准备材料 阿里云主机一台,操作系统CentOS 6.5 64位 lnamp.zip包(包含搭建环境所需要的所有软件) http://123.56.144. ...
- centos mysql 编译安装
centos mysql 编译安装 1.安装 创建MySQL用户 sudo useradd mysql 下载MySQL的源码包,我们这里使用的时5.5.18 安装依赖 sudo yum -y inst ...
- web服务器学习1---httpd-2.4.29源码手动编译安装
环境准备: 系统:CentOS 7.4 软件:httpd-2.4.29 一 Apache主要特点 apache服务器在功能,性能和安全性等方面表现比较突出,可以较好地满足web服务器地应用需求.主要 ...
- 手动编译安装tmux
tmux的好处就不多说了,总之是多屏管理的神器.通常我们用系统通用的安装方式可以安装到tmux,但有时候,安装到的可能不是我们所需要的版本,又或者软件源里面没有带tmux.这个时候就需要手动编译安装了 ...
- centos下编译安装lnmp
centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...
- CentOS 7 编译安装 Code::Blocks
CentOS 7 编译安装 Code::Blocks yum install cairo-devel yum install pango-devel yum install atk-devel yum ...
- Debian/Ubuntu手动编译安装MongoDB C++11驱动及驱动测试
本文章仅限cnblogs网站内转载!请某网站自觉,遵纪守法,尊重原创! 系统环境情况: 最小化.无桌面环境 新安装的Debian 8 Server 版本操作系统虚拟机一台 手动编译安装MongoDB ...
随机推荐
- 记一次诡异的网络故障排除 - tpc_tw_recycle参数引起的网络故障
一.故障现象 我们团队访问腾讯云上部署的测试环境中的Web系统A时,偶尔会出现类似于网络闪断的情况,浏览器卡很久没有反应,最终报Connection Timeout. 不过奇怪的是,当团队中的某个人无 ...
- bzoj 4545 DQS 的 Trie
老年选手不会 SAM 也不会 LCT 系列 我的数据结构好菜啊 qnq 一颗 Trie 树,$q$ 次询问,每次可以是: 1.求这棵树上本质不同的子串数量 2.插入一个子树,保证总大小不超过 $100 ...
- storm-kafka源码走读之KafkaSpout
from: http://blog.csdn.net/wzhg0508/article/details/40903919 (五)storm-kafka源码走读之KafkaSpout 原创 2014年1 ...
- Robot Framework接口测试(1)
RF是做接口测试的一个非常方便的工具,我们只需要写好发送报文的脚本,就可以灵活的对接口进行测试. 做接口测试我们需要做如下工作: 1.拼接发送的报文 2.发送请求的方法 3.对结果进行判断 我们先按步 ...
- LeetCode Degree of an Array
原题链接在这里:https://leetcode.com/problems/degree-of-an-array/description/ 题目: Given a non-empty array of ...
- 洛谷 P2920 [USACO08NOV]时间管理Time Management
传送门 题目大意: 每个工作有截至时间和耗费时间,n个工作求最小开始时间. 题解: 贪心 从n-1安排,让结束时间尽量的晚. 注意:优先级 cout<<st<0?-1:st; (X ...
- linux基础命令复习
1.ls 查看文件和文件夹 1).ls -a 查看文件和文件夹,包括隐藏的 2).ls -l 查看文件和文件夹详情 3).ls -lh 查看文件和文件夹详情,自动生成文件大小单位 4).ls ...
- utf_8 和 GBK 不搭出现乱码(转)
今天调数据的时候发现调出来的一直是乱码,用了各种方法都未解决,简单的调数据用了好长时间,最后突然发现了一个问题 页面的 <meta http-equiv="Content-Type&q ...
- Android Socket编程
花了大概两天的时间,终于把Android的Socket编程给整明白了.抽空和大家分享一下: Socket Programming on Android Socket 编程基础知识: 主要分服务器端编程 ...
- Redis数据清除问题
Redis中数据清除可以分为两种方式 手动清除:指定要清除的key,通过delete命令即可清除 自动清除:使用Redis提供的数据过期策略 Redis数据过期策略 redis提供了非常灵活 ...