error: C2373: “str”: 重定义;不同的类型修饰符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了error: C2373: “str”: 重定义;不同的类型修饰符相关的知识,希望对你有一定的参考价值。

弄不明白这是哪里错了,渴求解答。

参考技术A 你看下你的st是不是在哪个地方重复定义了。还有就是你第一个错误应该这样定义一个对象吧
revpr myRevpr(st);
第二个错误是你的调用方法不正确,就应该安装我说的这样的对象调用:myRevpr.rev_str();

你可以试试。本回答被提问者采纳

《OpenGL编程指南第七版》学习——编译时提示“error C2381: “exit” : 重定义;__declspec(noreturn) 不同”错误的解决办法

解决办法
一、

#if defined(_WIN32)

# ifndef GLUT_BUILDING_LIB
extern _CRTIMP void __cdecl exit(int);


上面是glut.h中对exit的使用,意思是如果没有定义宏?GLUT_BUILDING_LIB,就使用它的exit,那我们就在项目的属性——预处理器 里定义这个宏,这样就不执行glut.h中的exit了,而只执行stdlib.h中的exit。这样也就不会冲突了。对了,还要在附加依赖项里手动加上?glut32.lib glu32.lib opengl32.lib,因为我们定义了?宏?GLUT_BUILDING_LIB,glut.h文件就不会为我们自动生成这三个附加依赖项了。

 

 

二、


stdlib.h(406)   :   error   C2381:   “exit”:   重定义;__declspec(noreturn)   不同   
  glut.h(146)   :   参见“exit”的声明  

解决方法:#include <GL/glut.h>
                    #include <stdlib.h>
改成:
                    #include <stdlib.h>
                    #include <GL/glut.h>
通过。

OpenGL和C++有不太融合的地方,在include时要让标准C++类库的头文件位于GLUT图形库头文件之前。

以上是关于error: C2373: “str”: 重定义;不同的类型修饰符的主要内容,如果未能解决你的问题,请参考以下文章

error C2381: “exit” : 重定义

error c2572重定义默认參数

fatal error LNK1169:找到一个或多个重定义的符号

BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT 宏重定义

带有自定义错误消息的 Django 重定向

《OpenGL编程指南第七版》学习——编译时提示“error C2381: “exit” : 重定义;__declspec(noreturn) 不同”错误的解决办法