NODE_GCC6.1.0安装更新+问题解决+Vue.js之中学习进度记录

课本到了第八章:过渡(动画)第九章:Methods 第十章:Vue实例方法 第十一章:组件 第十二章:表单校验 第十三章:与服务端通信 第十四章:陆游与视图 第十五章: vue-cli


所以在进行到 第九章的时候:看了第三讲!!!完成第三讲!第二讲! 目前视频中直接用的 vuejs 1.0 bower -> (前端)包管理器 npm install node.js安装: 基于centeos _下载:_ https://nodejs.org/en/download/ http://ftp.gnu.org/gnu/gcc/ http://www.runoob.com/nodejs/nodejs-install-setup.html _vuejs 中文官方文档:_ https://cn.vuejs.org/v2/guide/transitions.html === make[1]: [/usr/local/src/node-v6.11.4/out/Release/obj.target/v8_base/deps/v8/src/accessors.o] Error 1 make[1]: Leaving directory `/usr/local/src/node-v6.11.4/out’ make: [node] Error 2 其中出现两个错误! —centos 6.5安装更新 G++/GCC —-恢复内容开始—- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update…. yum install 或者 添加yum 的 repo 文件 也不行, 只能更新到 4.4.7! then, 只能手动编译安装了,那么开始第一步下载源代码吧,GO! 1、 获取安装包并解压 wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2 tar -jxvf gcc-6.1.0.tar.bz2 当然,http://ftp.gnu.org/gnu/gcc 里面有所有的gcc版本供下载,最新版本已经有6.1.0啦. 建议下载.bz2的压缩包,文件更小,下载时间更少. 2、 下载供编译需求的依赖项 参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。 cd gcc-6.1.0 ./contrib/download_prerequisites 3、 建立一个目录供编译出的文件存放 mkdir gcc-build-6.1.0 cd gcc-build-6.1.0 4、 生成**Makefile**文件 ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib 5、 编译 make -j4 -j4选项是make对多核处理器的优化,如果不成功请使用 _make_,(进行单核处理)相关优化选项可以移步至参考文献[2]。 (注意:此步骤非常耗时,我虚拟机耗时近3小时; 实体机近80分钟,CPU基本是满的,内存也使用不少) 注意make-j选项可以指定同时运行的作业数量,即CPU核数,如果有4核则可以加上-j4

出错解决

1.make过程中可能会出现以下错误信息:

build/genattrtab ../.././gcc/config/i386/i386.md insn-conditions.md \
-Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c
make[3]: [s-attrtab] Killed
make[3]: Leaving directory `/usr/src/gcc-4.9.2/host-x86_64-unknown-linux-gnu/gcc’
make[2]:
[all-stage1-gcc] Error 2
make[2]: Leaving directory /usr/src/gcc-4.9.2' make\[1\]: *** \[stage1-bubble\] Error 2 make\[1\]: Leaving directory/usr/src/gcc-4.9.2’
make: * [all] Error 2

可以通过添加swap分区的方法解决: http://blog.csdn.net/qq_20480611/article/details/52144399 2.动态库libstdc++.so.6版本不匹配 可以正常编译程序,但是运行时出现以下问题: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15’ not found 添加LD_LIBRARY_PATH环境变量即可解决:

# vim ~/.bash_profile
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
# source ~/.bash_profile

GCC新特征

GCC 6.1 发布了,该版本较之前GCC5 新怎了大量的功能特性,默认采用C++14为新的标准,替代了之前的C++98。OpenMP 4.5规范将在本版本中被支持。此外,GCC 6.1 增强了对 C++17 的试验性支持;大大改进了诊断特性,包括位置,位置范围,拼写错误标识符建议,选项名字等等改进;新增了修复提示和一些警告提示。改进记录如下:

  • UndefinedBehaviorSanitizer gained a new sanitization option, -fsanitize=bounds-strict, which enables strict checking of array bounds. In particular, it enables -fsanitize=bounds as well as instrumentation of flexible array member-like arrays.
  • Type-based alias analysis now disambiguates accesses to different pointers. This improves precision of the alias oracle by about 20-30% on higher-level C++ programs. Programs doing invalid type punning of pointer types may now need -fno-strict-aliasing to work correctly.
  • Alias analysis now correctly supports weakref and alias attributes. This makes it possible to access both a variable and its alias in one translation unit which is common with link-time optimization.
  • Value range propagation now assumes that the this pointer of C++ member functions is non-null. This eliminates common null pointer checks but also breaks some non-conforming code-bases (such as Qt-5, Chromium, KDevelop). As a temporary work-around-fno-delete-null-pointer-checks can be used. Wrong code can be identified by using-fsanitize=undefined.

完整发布说明,可以在这里查看。

参考文章

CentOS下安装gcc-4.9.2 centos6.5安装gcc6.1等c++环境 https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths (CSDN的Markdown不好用)

6、 安装

make install

(安装需要root权限!) 查看安装 ls /usr/local/bin | grep gcc

7、 重启,然后查看gcc版本

gcc -v

8、 写个C++11 特性的程序段 测试

tryCpp11.cc 代码省略…. g++ -std=c++11 -o tryCpp11 tryCpp11.cc 9、升级gcc,生成的动态库没有替换老版本gcc的动态库 源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。 9.1 运行以下命令检查动态库: strings /usr/lib64/libstdc++.so.6 | grep GLIBC 从输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。 9.2 执行以下命令,查找编译gcc时生成的最新动态库: find / -name “libstdc++.so*” 将上面的最新动态库libstdc++.so.6.0.22复制到/usr/lib64目录下 cd /usr/lib64 cp /root/Downloads/gcc-6.1.0/gcc-build-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 ./ 9.3 删除原来软连接: rm -rf libstdc++.so.6 9.4 将默认库的软连接指向最新动态库: ln -s libstdc++.so.6.0.22 libstdc++.so.6 9.5 默认动态库升级完成。重新运行以下命令检查动态库: strings /usr/lib64/libstdc++.so.6 | grep GLIBC 可以看到 输出有”GLIBCXX_3.4.21” 了 [注:摘抄自http://www.linuxidc.com/Linux/2015-01/112595.htm, http://itbilu.com/linux/management/NymXRUieg.html, _原作者编译有出错过,但是我编译没有出错过_] [参考1:http://www.tuicool.com/articles/FVN7jez\] [参考2:http://blog.chinaunix.net/uid-14735472-id-5546560.html\]

10.新的主题(npm下安装node.js)

参考:【1】http://blog.csdn.net/haoaiqian/article/details/72453286 【2】http://blog.csdn.net/sinat_29412671/article/details/53690658 【3】http://www.runoob.com/vue2/vue-install.html 一、开发环境 vue推荐开发环境: Node.js: javascript运行环境(runtime),不同系统直接运行各种编程语言 npm: Nodejs下的包管理器。 webpack: 它主要的用途是通过 CommonJS 的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并和打包。 vue-cli: 用户生成Vue工程模板 二、环境搭建 安装node.js: 1. 从node.js官网下载并安装node,安装过程很简单。 2. npm 版本需要大于 3.0,如果低于此版本需要升级它:

# 查看版本
$ npm -v
2.3.0

升级 npm

cnpm install npm -g

3.基于node.js,利用淘宝npm镜像安装相关依赖。由于国内使用npm会很慢,这里推荐使用淘宝NPM镜像(http://npm.taobao.org/

$ npm install -g cnpm —registry=https://registry.npm.taobao.org

完成之后,我们就可以用cnpm代替npm来安装依赖包了。 三、安装vue-cli脚手架构建工具 安装全局vue-cli脚手架,用于帮助搭建所需的模板框架

$ cnpm install -g vue-cli
# 回车,等待安装…
$ vue
# 回车,若出现vue信息说明表示成功

四、用vue-cli构建项目

# 创建一个基于 webpack 模板的新项目
$ vue init webpack my-project
# 这里需要进行一些配置,默认回车即可
This will install Vue 2.x version of the template.
For Vue 1.x use: vue init webpack#1.0 my-project
? Project name my-project
? Project description A Vue.js project
? Author runoob test@runoob.com
? Vue build standalone
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Setup unit tests with Karma + Mocha? Yes
? Setup e2e tests with Nightwatch? Yes
vue-cli · Generated “my-project”.
To get started:
cd my-project
npm install
npm run dev
Documentation can be found at https://vuejs-templates.github.io/webpack

五、安装依赖 在cmd里

1).输入:cd my-project(项目名),回车,进入到具体项目文件夹
2).输入:cnpm install,回车,等待一小会儿

回到项目文件夹,会发现项目结构里,多了一个node_modules文件夹(该文件里的内容就是之前安装的依赖) 六、测试环境是否搭建成功 方法1:在cmd里输入:npm run dev 方法2:在浏览里输入:localhost:8080(默认端口为8080)


解决在 make当中出错的问题:由于temp 分区过小:

根据Redhat公司的建议,Linux系统swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大,例如要顺利执行Oracle数据库软件,swap分区至少需要400MB或者物理内存2倍以上的空间.当然我们在安装Linux的时候,就能直接讲swap分区设置到足够的大小,但如果已经安装好Linux了,之后又想再安装类似Oracle的软件,却发现swap分区空间不够,该如何处理? 针对此种情况,有两种解决方法:一是创建新的swap分区;另一则是创建swap文件. 点此查看如何创建新分区 下面介绍创建swap文件的过程: 如果你的硬盘空间已经全部分配给其他分区,也没有多余的预算新添购硬盘,我们可以利用swap文件的方式增加虚拟的swap空间,不过执行性能会较实际的swap分区差.

产生swap文件

执行dd命令新增一个1G的swap文件:

# dd if=/dev/zero of=/opt/swapfile bs=1M count=1000

更多关于dd命令的解释请参考man手册man dd

格式化swap文件

接下来执行mkswap命令,将myswap文件格式化成swap文件系统: 注意 我的在

/opt/swapfile 下面有1G的空间! 下面的的 /tmp/myswap 全部修改为 /opt/swapfile

# mkswap /tmp/myswap

使能swap文件

执行swapon命令可以使能myswap文件为swap分区,对应的执行swapoff命令可以关闭这种效果:

# swapon /tmp/myswap

此时可以通过 free -h 查看内存使用情况及swap分区

自动挂载

编辑/etc/fstab文件,添加开机使能swap文件项:

# vim /tmp/myswap
/tmp/myswap swap swap defaults 0 0 # 待添加的行

最后执行以下命令自动挂载所有在fstab中的文件系统

# mount -a

(っ•̀ω•́)っ✎⁾⁾ 坚持技术学习、内容输出与分享,您的支持将鼓励我继续创作!(*/ω\*)
( • ̀ω•́ )✧如有疑问或需要技术讨论,请留言或发邮件到 aclearzhang@qq.com.(*・ω< ) 
  • 本文作者:: AClearZhang
  • 本文链接:: 799.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!