Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Linux上构建Ogre时出错:缩小转换范围_C++_Linux_Cmake_Ogre - Fatal编程技术网

C++ 在Linux上构建Ogre时出错:缩小转换范围

C++ 在Linux上构建Ogre时出错:缩小转换范围,c++,linux,cmake,ogre,C++,Linux,Cmake,Ogre,我正在尝试在Linux上获得食人魔。我下载了源文件并解压缩了它们。然后我创建了build文件夹,然后运行“cmake..”。完成后,我运行了“make-j4”(我有4个内核,我还尝试了justmake)。我达到49%,每次都停止。我已经下载了cmake gui并运行了配置并选中了所有框。我再次点击配置,然后生成。我又试着跑“make” 这是多次弹出的错误,除非它们引用ps_1_4.cpp中的不同代码行,并且编号“-35051”不同 此外,在整个构建过程中,对于将const GLboolean*强

我正在尝试在Linux上获得食人魔。我下载了源文件并解压缩了它们。然后我创建了build文件夹,然后运行“cmake..”。完成后,我运行了“make-j4”(我有4个内核,我还尝试了justmake)。我达到49%,每次都停止。我已经下载了cmake gui并运行了配置并选中了所有框。我再次点击配置,然后生成。我又试着跑“make”

这是多次弹出的错误,除非它们引用ps_1_4.cpp中的不同代码行,并且编号“-35051”不同

此外,在整个构建过程中,对于将const GLboolean*强制转换为GLboolean*有几个警告,但这是我在最后给出的消息:

RenderSystems/GL/CMakeFiles/RenderSystem_GL.dir/build.make:542: recipe for target 'RenderSystems/GL/CMakeFiles/RenderSystem_GL.dir/__/__/RenderSystem_GL/compile_RenderSystem_GL_0.cpp.o' failed
make[2]: *** [RenderSystems/GL/CMakeFiles/RenderSystem_GL.dir/__/__/RenderSystem_GL/compile_RenderSystem_GL_0.cpp.o] Error 1
CMakeFiles/Makefile2:1057: recipe for target 'RenderSystems/GL/CMakeFiles/RenderSystem_GL.dir/all' failed
make[1]: *** [RenderSystems/GL/CMakeFiles/RenderSystem_GL.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
每次我尝试一种新方法时,我都会删除构建文件夹并重新开始。每次它似乎都以此消息结束。我对Linux和CMake还比较陌生,所以你能解释一下到底发生了什么,以及你是如何得出这个结论的吗

注意:我找到了,但我不知道构建函数在哪里,也不知道如何更改CXX\U标志

表明可以使用
gnu++98
标准(实际上是
c++98
加上gnu扩展)成功构建Ogre

标准通过编译器标志设置,如果
cmake
标志可以传递为:

cmake -DCMAKE_CXX_FLAGS="--std=gnu++98" ..

recipe for target*failed
只意味着目标无法构建,而没有说明失败原因的任何信息。在调试问题时,这些信息有一点意义。对于标题中的错误消息
Recipe for target'all'failed
,此消息针对任何make build中的任何错误显示。如果你想获得更多有价值的信息,使用单线程
make-j1
并查找包含
Error
或类似内容的行。我这样做了,我看到的唯一错误是以下几种错误:
下载/ogre_src_v1-8-1/RenderSystems/GL/src/atifs/src/ps_1_4.cpp:689:1:Error:35051'从'int'转换为'uint{aka unsigned int}'内部{}[-Wnarrowing]};^所以,这些错误是您得到的故障的实际描述。将它们添加到你的问题中,因为所有有价值的信息都应该在问题帖子中,而不是在评论中。我还补充说,我发现一个论坛有一个解决方案,但它并不像我需要的那样具有描述性。我不知道构建函数在哪里。
我不知道构建函数在哪里。
-在参考文章中,“构建函数”是调用
cmake
的函数。建议在调用之前设置(修改)CXXFLAGS变量。手动调用
cmake
时,需要在调用之前在同一终端中设置变量:
export cxflags+='-std=gnu++98'
。或者,您可以在
cmake
调用中修改编译器标志:
cmake-DCMAKE\u CXX\u flags=“--std=gnu++98”。
cmake -DCMAKE_CXX_FLAGS="--std=gnu++98" ..