【问题标题】:How to link bullet libraries(from FindBullet.cmake)?如何链接项目符号库(来自 FindBullet.cmake)?
【发布时间】:2019-06-08 02:09:50
【问题描述】:

我正在开发一款游戏,并尝试使用子弹。但是,(似乎)我在链接项目符号库时遇到了麻烦。编辑2:我有my code on github

这实际上是我第一次使用 cmake。我搜索了 FindBullet.cmake 文件,可以找到链接库的变量(${BULLET_LIBRARIES}),但是链接变量中的库没有任何作用。

    find_package(Bullet REQUIRED)
    include_directories(${BULLET_INCLUDE_DIR})
    target_link_libraries(3DPlatformer ${BULLET_LIBRARIES})

我希望我的代码能够编译,但我得到了一堆“未定义的引用”,然后是它读取的项目符号中的任何函数。 编辑:

more undefined references to `btAlignedAllocInternal(unsigned long, int)' follow

^这就是我得到的一堆

collect2: error: ld returned 1 exit status

这是最后一个错误。 Full Error

【问题讨论】:

  • “我在链接项目符号库时遇到问题。” 是一个非常模糊的问题描述。请在此处提供minimal reproducible example 重现实际问题。
  • 欢迎来到 Stack Overflow!总的来说,您的代码 sn-p (CMakeLists.txt) 似乎是正确的。但是由于您收到错误,因此在某些细节上可能存在问题。这就是为什么我们需要查看确切的错误消息才能帮助您解决问题。您正在尝试描述该错误消息,但该描述无济于事。请edit您的问题帖子并在其中添加确切的错误消息。不需要粘贴一大堆错误,但肯定需要第一个错误。

标签: c++ cmake bullet


【解决方案1】:

libbullet-dev需要安装。

sudo apt-get install libbullet-dev

【讨论】:

    【解决方案2】:

    我的问题是我的一个 if 语句被破坏了。 我的 if 语句:

    if(USE_SYSTEM_BULLET)
        find_package(Bullet REQUIRED)
        include_directories(${BULLET_INCLUDE_DIR})
        target_link_libraries(3DPlatformer ${BULLET_LIBRARIES} -lGL -lGLU)
    else(USE_SYSTEM_BULLET)
        add_subdirectory("${PROJECT_SOURCE_DIR}/lib/bullet" )
        include_directories("${PROJECT_SOURCE_DIR}/lib/bullet/src")
    endif(USE_SYSTEM_BULLET)
    

    以某种方式触发了所有代码而不是其中的一部分。像这样评论代码:

    #if(USE_SYSTEM_BULLET)
        find_package(Bullet REQUIRED)
        include_directories(${BULLET_INCLUDE_DIR})
        target_link_libraries(3DPlatformer ${BULLET_LIBRARIES} -lGL -lGLU)
    #else(USE_SYSTEM_BULLET)
    #   add_subdirectory("${PROJECT_SOURCE_DIR}/lib/bullet" )
    #   include_directories("${PROJECT_SOURCE_DIR}/lib/bullet/src")
    #endif(USE_SYSTEM_BULLET)
    

    修复它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多