在Linux上构建Ogre时出错:缩小转换

时间:2017-01-27 09:24:48

标签: c++ linux cmake ogre

我想在Linux上获得Ogre。我下载了源文件并解压缩了它们。然后我创建了构建文件夹,然后我运行了“cmake ..”。完成后,我运行了“make -j4”(我确实有4个内核,我也尝试过make)。我达到49%,每次都停止。我已经下载了cmake gui并运行configure并检查了所有方框。我再次点击配置然后生成。我试着再次运行“make”。

Downloads/ogre_src_v1-8-1/RenderSystems/GL/src/atifs/src/ps_‌​1_4.cpp:689:1: error: narrowing conversion of ‘-35051’ from ‘int’ to ‘uint {aka unsigned int}’ inside { } [-Wnarrowing] }; 

这是多次弹出的错误,除了它们引用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的新手,所以你能解释一下发生了什么以及你是如何得出这个结论的吗?

注意:我找到one forum that talks about this但我不知道构建函数的位置或者如何更改CXX_FLAG。

1 个答案:

答案 0 :(得分:2)

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

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

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