自动绑定时python提示找不到windows API

  • Creator 版本: 3.8.4

  • 目标平台: windows

  • 重现方式:使用python命令进行自动绑定

  • 首个报错: <SourceLocation file ‘F:\cocosEditors\Creator\3.8.4\resources\resources\3d\engine\native\tools\bindings-generator/…\…\cocos\myjsb\windows\WindowsApi.h’, line 4, column 10>,
    details = “‘AclAPI.h’ file not found”>

  • 编辑器操作系统: windows

由于项目中有一些功能需要用到winAPI,自己编写了C++的功能,要绑定到TS。在运行绑定脚本的时候提示找不到windows Api。环境变量没有问题,甚至我在python脚本中设置了运行时环境变量,把库目录添加进去,还是找不到。

python 绑定脚本:






设置运行时环境变量是在154行:

os.putenv(‘PATH’, r’%s;%s\libclang;%s\tools\win32;s;' (path_env, cxx_generator_root, cxx_generator_root, r’C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0’))

绑定配置ini:

c++头:

cpp文件:

有没有大神知道这个问题该怎么解决,还是说调用api只能手动绑定?或者是有别的解决方案?

你要确认你的编译器是不是用PATH作为头文件搜索目录,据我了解msvc和g++基本上都有自己的一套头文件搜索目录的设置,不会直接用PATH。例如g++ 是 CPLUS_INCLUDE_PATH 环境变量,以及命令行参数,msvc是根据工程文件来走的。

已解决。
其实也并没有完全解决,只是跳过了python寻找头文件的过程。
在运行自动绑定脚本之前先将C++头include的winapi注释掉,这样绕过了绑定时寻找头文件的过程,编译的时候再解开注释,也能正常运行。先这样吧,能力有限。
如果有大神能从根本上解决,企望赐教。

我用的这个,没出现什么环境问题。
https://docs.cocos.com/creator/3.8/manual/zh/advanced-topics/jsb-swig.html

原来我在用过时的方法,不仔细看文档的后果 :joy: