编译安装gcc6.2.0
在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8。官方源没有比较新的版本,于是自己编译使用。
GCC6的几个新特性
GCC 6 现在的默认值是 C++ 14. GCC 6 现在包括 C++ Concepts.
C++运行时库现在支持特殊的数学函数 (ISO/IEC 29124:2010)
支持 C++17 的实验功能
准备
可以去gnu官网下载gcc6.2.0的源码,但国内访问速度比较慢。可以进中科大的镜像站去下载。
下载并解压
wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-6.2.0/gcc-6.2.0.tar.bz2
tar -xjvf gcc-6.2.0.tar.bz2
解压之后进入源码目录,运行下面命令下载依赖包
./contrib/download_prerequisites #必须在源码根目录下运行此命令
编译gcc前需安装build-essential
,bison
,flex
,texinfo
。
生成Makefile
在源码目录下建立一个build目录(也可以在别的目录下),然后进入build目录运行configure脚本生成Makefile文件。
mkdir build && cd build
../configure --prefix=/usr/local/gcc6 --enable-checking=release --enable-languages=c,c++ --enable-threads=posix --disable-multilib
# --prefix=/usr/local/gcc6 指定安装路径
# --enable-languages=c,c++ 支持的编程语言
# --enable-threads=posix 使用POSIX/Unix98作为线程支持库
# --disable-multilib 取消多目标库编译(取消32位库编译)
下面是archlinux自带gcc的编译配置命令。
--prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release
编译安装
上一步生成Makefile没有问题后,就可以直接编译安装了。
make -j8 #使用8个线程并行编译
make install #安装(可能需要root权限)
生成软链接
cd /usr/local/bin
ln -s /usr/local/gcc6/bin/gcc gcc6
Ubuntu16.04编译安装Python3.6
安装tcl/tk和Tkinter
tcl和tk的下载地址:https://sourceforge.net/projects/tcl/files/Tcl/
目前我下载的tcl/tk源代码包是 tcl8.6.6-src.tar.gz
和 tk8.6.6-src.tar.gz
安装tcl8.6:
tar -xzvf tcl8.6.6-src.tar.gz
cd tcl8.6.6/unix
./configure
make
sudo make install
安装tk8.6(与tcl8.6的安装相似):
编译时如果出现以下错误信息:
/home/alan/Downloads/tk8.6.6/unix/../generic/tk.h:96:25: 致命错误: X11/Xlib.h:没有那个文件或目录
编译中断。
make: *** [tk3d.o] 错误 1
那么说明x11库依赖缺失,在终端运行:
sudo apt-get install libx11-dev
之后修改Setup.dist文件,进入python安装包解压后那个文件夹里, 命令打开Setup.dist文件vim Modules/Setup.dist
修改上面5处地方, 把她们前面的#删除掉, 默认的tcl和tk是8.2, 但是我们已经安装的tcl和tk的版本是8.6, 那么我们就将这里的tk8.3和tcl8.2修改为tk8.6和tcl8.6, 保存退出。
配置ssl模块
安装SSL相关的依赖
apt-get install openssl
apt-get libssl-dev
修改Setup.dist文件
编译安装
现在重装python3.6.0, 用以下命令一次性完成配置、编译、安装:
./configure
make
sudo make install
deb包安装MySQL
Ubuntu下如果apt-get安装MySQL的话,仓库版本可能比较陈旧,所以我选择从官网下载deb包安装最新的MySQL
下载MySQL
到mysql网站下载相应的mysql安装包,我的mysql-server_5.7.17-1ubuntu16.04_amd64.deb-bundle.tar
解压
tar -xvf mysql-server_5.7.17-1ubuntu16.04_amd64.deb-bundle.tar
得到以下文件:
libmysqlclient20_5.7.17-1ubuntu16.04_amd64.deb
libmysqlclient-dev_5.7.17-1ubuntu16.04_amd64.deb
libmysqld-dev_5.7.17-1ubuntu16.04_amd64.deb
mysql-client_5.7.17-1ubuntu16.04_amd64.deb
mysql-common_5.7.17-1ubuntu16.04_amd64.deb
mysql-community_5.7.17-1ubuntu16.04_amd64.changes
mysql-community-client_5.7.17-1ubuntu16.04_amd64.deb
mysql-community-server_5.7.17-1ubuntu16.04_amd64.deb
mysql-community-source_5.7.17-1ubuntu16.04_amd64.deb
mysql-community-test_5.7.17-1ubuntu16.04_amd64.deb
mysql-server_5.7.17-1ubuntu16.04_amd64.deb
mysql-server_5.7.17-1ubuntu16.04_amd64.deb-bundle.tar
mysql-testsuite_5.7.17-1ubuntu16.04_amd64.debsan
安装所需的包
sudo dpkg -i mysql-common_5.7.16-1ubuntu16.04_amd64.deb
sudo dpkg-preconfigure mysql-community-server_5.7.16-1ubuntu16.04_amd64.deb
sudo dpkg -i libmysqlclient20_5.7.16-1ubuntu16.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_5.7.16-1ubuntu16.04_amd64.deb
sudo dpkg -i libmysqld-dev_5.7.16-1ubuntu16.04_amd64.deb
sudo apt-get install libaio1
sudo dpkg -i mysql-community-client_5.7.16-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-client_5.7.16-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-common_5.7.16-1ubuntu16.04_amd64.deb
sudo apt-get install libmecab2
sudo dpkg -i mysql-community-server_5.7.16-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-server_5.7.16-1ubuntu16.04_amd64.deb
其他库依赖的安装
安装readline库
sudo apt-get install libreadline-dev
安装zlib库
sudo apt-get install zlib1g-dev