问题集锦:Cocos2dx CMake 在win32下报错:"BULLET_INCLUDE_DIR-NOTFOUND"

简介: 问题集锦:Cocos2dx CMake 在win32下报错:"BULLET_INCLUDE_DIR-NOTFOUND"

这个问题只有在win32平台下才有

  • frameworks\cocos2d-x\cmake\Modules\CocosUsePrebuiltLibs.cmake
# prebuild模块
set(all_prebuilt_libs
    chipmunk curl freetype2 jpeg png  
    tiff webp websockets openssl bullet
)
# 查找的目录
set(lib_dir_candidates
    ${_root}/prebuilt/${PLATFORM_FOLDER}/${ANDROID_ABI}
    ${_root}/prebuilt/${PLATFORM_FOLDER}/${ARCH_DIR}
    ${_root}/prebuilt/${PLATFORM_FOLDER}
    # 注意这里的release-lib, 其实只有chipmunk有
    ${_root}/prebuilt/${PLATFORM_FOLDER}/release-lib
    ${_root}/prebuilt/${ARCH_DIR}
    ${_root}/libraries/${PLATFORM_FOLDER}
    ${_root}/prebuilt
)
# 中间的逻辑是收集所有的lib路径
# 如果找到了设置对应的变量${_prefix}_LIBRARIES
if(libs)
    set(${_prefix}_LIBRARIES ${libs} CACHE STRING "Libraries to link for ${_prefix}" FORCE)
endif()
复制代码
  • chipmunk:cocos2d-x\external\chipmunk\prebuilt\win10\win32\chipmunk.lib
  • chipmunk:cocos2d-x\external\chipmunk\prebuilt\win32\release-lib\chipmunk.lib
    网络异常,图片无法展示
    |
  • curl: cocos2d-x\external\curl\prebuilt\win32\libcurl.lib
  • freetype2: cocos2d-x\external\freetype2\prebuilt\win32\freetype.lib
  • jpeg:  cocos2d-x\external\jpeg\prebuilt\win32\libjpeg.lib
  • png:  cocos2d-x\external\png\prebuilt\win32\libpng.lib
  • tiff:  cocos2d-x\external\tiff\prebuilt\win32\libtiff.lib
  • webp:  cocos2d-x\external\webp\prebuilt\win32\libwebp.lib
  • websockets:  cocos2d-x\external\websockets\prebuilt\win32\websockets.lib
  • openssl:  cocos2d-x\external\openssl\prebuilt\win32\libssl.lib
  • bullet:  cocos2d-x\external\bullet\prebuilt\win32\debug\libbullet.lib

问题就出在bullet的debug目录

网络异常,图片无法展示
|

查找目录的确是没有相关的目录的,很不幸在官方仓库也是这么组织目录的

一个很细的逻辑:

里面有一段这样的逻辑,其实我发现没有任何用,_bullet_libs的设置是无效的,不太清楚为啥这么写

# sequence is important
set(_bullet_libs BulletDynamics libBulletDynamics BulletCollision libBulletCollision BulletMultiThreaded libBulletMultiThreaded LinearMath libLinearMath MiniCL libMiniCL)
复制代码

临时解决办法

增加lib_dir_candidates的目录,显然,没有考虑到debug、release模式,但是chipmunk也存在这个问题

${_root}/prebuilt/${PLATFORM_FOLDER}/release
复制代码

特殊情况:zlib

有2个查找路径,zlib是在specific里面

set(roots
    ${COCOS_EXTERNAL_DIR}/${_lib}
    ${COCOS_EXTERNAL_DIR}/${PLATFORM_FOLDER}-specific/${_lib}
)
复制代码

网络异常,图片无法展示
|
网络异常,图片无法展示
|



目录
相关文章
|
8月前
|
缓存 测试技术 编译器
【CMake 疑难解决 】解决find_library查找位置不对的问题
【CMake 疑难解决 】解决find_library查找位置不对的问题
556 3
|
C语言 Android开发 Windows
解决windows下eclipse创建project时没有include导致出现“unresolved inclusion: <stdio.h>”错误的方法
解决windows下eclipse创建project时没有include导致出现“unresolved inclusion: <stdio.h>”错误的方法
解决windows下eclipse创建project时没有include导致出现“unresolved inclusion: <stdio.h>”错误的方法
clion中cpp文件显示This file does not belong to any project ,code insight features might not work【解决方案】
clion中cpp文件显示This file does not belong to any project ,code insight features might not work【解决方案】
clion中cpp文件显示This file does not belong to any project ,code insight features might not work【解决方案】
|
5月前
|
编译器 C语言
针对make工具和Makefile文件的学习心得
【8月更文挑战第24天】本文分享了关于 make 工具和 Makefile 文件的学习心得。make 工具与 Makefile 在软件开发特别是大型项目中扮演着重要角色,能自动化构建流程并提升开发效率。文章首先强调了了解 make 和 Makefile 重要性的必要性,并详细解析了 Makefile 的基本结构:包括目标、依赖和命令的定义;通过变量简化命令与依赖;以及伪目标的使用等。接着,文中介绍了几个关键的 Makefile 编写技巧:如何合理组织依赖关系,有效利用变量和宏,灵活运用自动变量,以及添加清晰的注释等。
|
6月前
|
自然语言处理 Linux C++
make和Cmake都有什么区别?(内附使用详解)
make: 是一个构建工具,它的任务是读取 Makefile 文件,并基于这些文件中的指令执行具体的构建操作。Makefile 文件包含了如何构建项目的规则,make 负责解析这些规则并执行必要的命令来编译和链接源代码,生成可执行文件或库。 CMake: 是一个构建系统生成器。它并不直接进行编译或链接,而是根据项目中 CMakeLists.txt 文件的内容生成一个或多个构建系统的描述文件(如 Makefile 或 Visual Studio 解决方案)。CMake 提供了一种更高级、更抽象的方式来描述构建过程,这使得它能够跨平台地生成各种构建系统。
545 0
|
Windows
CMake教程12:CMake是怎么找到Qt相关模块的
CMake教程12:CMake是怎么找到Qt相关模块的
892 0
|
计算机视觉 Python
关于最新版本的Anaconda里面的Spyder里总出现 ‘DLL load failed: 找不到指定的模块’ 的问题
关于最新版本的Anaconda里面的Spyder里总出现 ‘DLL load failed: 找不到指定的模块’ 的问题
关于最新版本的Anaconda里面的Spyder里总出现 ‘DLL load failed: 找不到指定的模块’ 的问题
|
编译器 C语言 计算机视觉
QT5在windows下调用OpenCV库出现: undefined reference to `xxxxx' 错误解决办法(适用MinGW编译器)。
QT5在windows下调用OpenCV库出现: undefined reference to `xxxxx' 错误解决办法(适用MinGW编译器)。
1707 0
QT5在windows下调用OpenCV库出现: undefined reference to `xxxxx' 错误解决办法(适用MinGW编译器)。
|
编译器 C语言 Windows
windows下在QT里调用ffmpeg库处理音频视频数据时,出现error missing -D__STDC_FORMAT_MACROS 错误的解决方法(MINGW32编译器)。
windows下在QT里调用ffmpeg库处理音频视频数据时,出现error missing -D__STDC_FORMAT_MACROS 错误的解决方法(MINGW32编译器)。
574 0
windows下在QT里调用ffmpeg库处理音频视频数据时,出现error missing -D__STDC_FORMAT_MACROS 错误的解决方法(MINGW32编译器)。
|
Windows
Qt Creator编译项目,报错,error: LNK1158: 无法运行“rc.exe”
Qt Creator编译项目,报错,error: LNK1158: 无法运行“rc.exe”
1033 0