提问人: 提问时间:5/16/2013 最后编辑:MSalters 更新时间:10/21/2023 访问量:1371
不能包含 <IOStream>否则会崩溃
Cannot include <IOStream> or it crashes
问:
我正在将eclipse与C++和opengl一起使用。但是,在我的程序中,我无法使用 #include 或者出现以下错误:启动配置中指定的程序文件不存在 C:\Users\workspace\mapCreator\Debug\mapCreator.exe 未找到
控制台如下所示
08:10:17 ** 增量生成配置调试项目 mapCreator ** 信息:Internal Builder 用于构建 g++ “-IC:\MinGW\lib\gcc\mingw32\4.6.2\include” “-IC:\MinGW\lib\gcc\mingw32\4.6.2\include-fixed” “-IC:\MinGW\lib\gcc\mingw32\4.6.2\include\c++” “-IC:\MinGW\lib\gcc\mingw32\4.6.2\include\c++\backward” “-IC:\MinGW\lib\gcc\mingw32\4.6.2\include\c++\mingw32” “-IC:\MinGW\include” -O0 -g3 -Wall -c -fmessage-length=0 -o
"src\main.o" "..\src\main.cpp" In file included from
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/char_traits.h:41, from
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/ios:41, from
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/ostream:40, from
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/iostream:40, from
..\src\main.cpp:4:
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h: In
function 'OI std::_copy_move_a(_II, _II, _OI)':
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:378:
error: expected primary-expression before ')' token
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:378: 错误:__is_trivial没有依赖于 template 参数,因此声明“__is_trivial”必须是 可用
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:378: 注意:(如果您使用 '-fpermissive',G++ 将接受您的代码,但 不允许使用未声明的名称已弃用)
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:383: 错误:“__simple”不能出现在常量表达式中
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:384: 错误:模板参数 2 无效
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:在 函数 'BI2 std::_copy_move_backward_a(_BI1, _BI1, _BI2)': C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:573: 错误:在“)”标记之前应有 primary-expression
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:573: 错误:__is_trivial没有依赖于 template 参数,因此声明“__is_trivial”必须是 可用
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:578: 错误:“__simple”不能出现在常量表达式中
C:\MinGW\lib\gcc\mingw32\4.6.2\include\c++/bits/stl_algobase.h:579: 错误:模板参数 2 无效 g++ -o mapCreator.exe
“src\main.o” -lopengl32 -lglut32 -lglu32 g++: src\main.o: 没有这样的文件 或目录
08:10:18 构建完成(耗时 1 秒 31 毫秒)
我的代码只是我一直在修改的一些示例代码,如下所示:
#include <windows.h>
#include <GL/glut.h>
#include <iostream>
using namespace std;
const int WIDTH = 600;
const int HEIGHT = 480;
void init();
void display();
void loop();
void init() {
glClearColor( 0.0, 0.0, 0.0, 1.0 ); /* Set the clear color */
}
/* Displays a black clear screen */
void display() {
glClear( GL_COLOR_BUFFER_BIT ); /* Clear the screen with the clear color */
glutSwapBuffers(); /* Double buffering */
}
/* The main function */
int main( int argc, char *argv[] ) {
/* Glut setup function calls */
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB ); /* Use double buffering and RGB colors */
glutInitWindowPosition( 100, 100 );
glutInitWindowSize( WIDTH, HEIGHT );
glutCreateWindow( argv[0] );
init();
glutDisplayFunc( display ); /* Call back display function */
glutMainLoop(); /* Continue drawing the scene */
return 0;
}
它目前崩溃了,但是我删除的第二个 #include 它工作正常。
更多信息:
似乎由于某种原因没有创建 .exe - 我已经清理了项目并构建了它,甚至重新启动了 Eclipse。但它没有效果。
我尝试运行一个非常基本的程序,但仍然使用 iostream、GL/glut.h 和 windows.h,即便如此,它仍然崩溃。我认为这意味着它的设置方式有问题。如果您确实需要它,请编写代码:
#include <iostream>
#include <GL/glut.h>
#include <windows.h>
using namespace std;
int main(){
cout<<"hello";
return 0;
}
答:
尝试在第一个程序中包括 after。windows.h
GL/glut.h
- 不编译 != “它崩溃了”
- “由于某种原因,似乎没有创建 .exe” - 丢失的 .o 文件怎么样?从字面上看,它就在错误消息中。
- 错误不能由以后包含的任何内容引起。你说你尝试了每一种组合,甚至展示了包括第一。这是否导致了同样的错误?如果是这样,则编译器安装已损坏。
<iostream>
<iostream>
解决方案很简单,但是在 C++ 中我遇到了同样的问题 只要确保你最后导入 OpenGL 库,即
#include <iostream>
#include <GL/glut.h>
不
#include <GL/glut.h>
#include <iostream>
为我工作
评论