程序出现找不到C++11新特性函数的一些原因

   这几天写算法时,遇到了一个问题。我要用到C++的库函数move函数,但是用了该函数后编译始终报错,说std下没有move这个函数。我就纳闷了,这个函数是标准的库函数怎么会找不到呢,后来我又用到cout这个基本函数,发现又可以找到。于是我在网上查了一下原因,大多数的回答都是在编译时要加上C++11,因为有些函数是C++11后才有的。但是我在Ubuntu上的g++版本都是4.9了,Qt里面的工程里也加了C++11的,但是还是找不到move函数。

   后来冷静下来想了想,程序是用Qt编译的,会不会是qmake有问题呢,但是我的Qt安装的版本是5.8最新版,能有什么问题。但我还是看了一下工程的编译器,发现qmake的版本是qt4,这很明显是系统中自带的qt4的版本,当时安装qtcreater5.7的时候没注意更改或是什么别的原因。于是我马上把qmake的版本切换成了qt5.再次编译程序发现可以找到move函数了。


这里记录一下,当程序找不到C++的库函数时注意以下几个问题:

一:该函数是不是C++11后才有的函数,若是检查编译时有没有忘记加上C++11来编译。

二:检查自己系统的编译器,g++版本起码要在4.8以上

三:检查所用IDE的编译器,查看是否因为编译器的版本过低而找不到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值