首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Box2D编译有问题。nullptr

Box2D编译有问题。nullptr
EN

Stack Overflow用户
提问于 2016-06-29 01:00:01
回答 2查看 402关注 0票数 0

伙计们。我正在从源代码编译Box2D,并给了一些麻烦。我在Box2D目录中运行了lash版本的premake,然后切换到/Build/gmake并运行make。Make return me:

代码语言:javascript
复制
../../Box2D/Dynamics/b2Body.cpp: In member function ‘void b2Body::DestroyFixture(b2Fixture*)’:
../../Box2D/Dynamics/b2Body.cpp:216:17: error: ‘nullptr’ was not declared in this scope
if (fixture == nullptr)
               ^

有人能帮我吗?我使用的是Ubuntu Linux 14.04。

EN

回答 2

Stack Overflow用户

发布于 2016-06-29 02:32:03

通过将-std=gnu++0x添加到由

生成的makefile中,我解决了我的问题

票数 0
EN

Stack Overflow用户

发布于 2017-08-21 05:23:35

premake文件(premake5.lua)使用以下代码片段提到了C++11:

代码语言:javascript
复制
filter { "language:C++", "toolset:gcc" }
    buildoptions { "-std=c++11" }

是不是看起来不管用。这可能与this issue有关,它的解决方案是使用cppdialect,它只在premake 5 Alpha12中可用(在撰写本文时,最新版本是Alpha11,这意味着您需要直接在GitHub上下载最新版本)。

作为一种快速解决方法,您可以遵循OP自己的答案:通过添加-std=c++11修改Box2D的Make文件(如果需要,还可以修改HelloWorld和Testbed )。gnu++11c++14等)敬ALL_CXXFLAGS

如果您希望修改premake本身,请执行以下操作:

premake5.lua,中的

  1. 注释掉上面提到的过滤器/构建选项片段
  2. In projects Box2D (如果需要,还可以添加HelloWorld和Testbed ),添加flags "C++11" (您也可以添加buildoptions { "-std=c++11" },唯一不同的是它还会将选项添加到ALL_CFLAGS)

示例:

代码语言:javascript
复制
project "Box2D"
    kind "StaticLib"
    language "C++"
    flags "C++11"  -- added
    files { "Box2D/**.h", "Box2D/**.cpp" }
    includedirs { "." }

我打算将此更改的PR发送到Box2D的存储库。

编辑:完成,这是PR

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38082167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档