最近在linux系统下面,使用eclipse编写了一些简单的C++程序,但是遇到了一个编译的问题。在这里整理一下,或许可以帮到和我有着相同困扰的人。

编译的时候,由于C++不同版本的方法不同,导致一个正确的语句无法编译过去,提示错误就是函数变量类型不符合。

点击头文件查看后发现,C++头文件判断了文件版本,即通过:

#if __cplusplus >= 201103L

来引入不同的函数,因此找了一下解决方案,在参考了 http://www.itnose.net/detail/6090255.html 与 http://m.blog.csdn.net/blog/luochenhuan123/17440607 两个网页后,得出如下解决方法。


解决办法分两步:


第一步:

Project->Properties->C++ General->Pahts and Symbols->Symbols(选项卡)

增加  __cplusplus Symbol   然后设置值为201103L (注意,这里的cplusplus前面时两条横线)

如图:


第二步:

Project->Properties->C/C++ Build > Settings > GCC C++ Compiler > Miscellaneous > other flages ,在原来的基础上添加上 -std=c++11 

对于GCC C compiler, 相似的添加-std=gnu++11 

如图:



那么这样子之后,再编译程序,就能够编译通过运行了
Logo

更多推荐