windows环境安装BehaviorTree.CPP【基于vscode】

本文详细记录了在Windows环境下使用BehaviorTree.CPP库时遇到的问题及解决方案,包括mingw版本选择、cmake编译问题、VSCode配置头文件路径和引用问题,以及c.code-workspace设置等,帮助读者规避常见错误。
摘要由CSDN通过智能技术生成

本文是在链接: 行为树 — [3] BehaviorTree.CPP在Windows下的使用(基于VSCode)基础上,列举一下本人踩过的几个坑,请阅读上文后阅读本文。

1. 安装mingw时需注意:

1.1 关于mingw的版本

mingw下载: 下载地址
在这里插入图片描述
mingw的版本是我踩坑最多的地方

1.1.1 最开始下载install.exe版本,但网络出现问题

1.1.2 下载x86_64-win32版本,出现了如下问题:

// 编译出错
error: 'mutex' in namespace 'std' does not name a type

原因是在mingw构建工具链的“线程模型:win32”中不支持互斥。您必须选择任何具有“线程模型:posix”的工具链

1.1.3 下载x86_64-posix-sjij版本,出现问题:

// 编译出错
'coroutine' was not declared in this scope

原因是x86_64版本不支持coroutine协程,我们需要下载dwarf版本,最后下载i686-posix-dwarf版本成功解决。

1.2 cmake编译问题

因为linux里mingw编译器是调用make.exe,所以我们要将mingw/bin中的mingw32-make.exe复制一份,重命名为make.exe
在这里插入图片描述

2 配置vscode时需注意

2.1 头文件配置

按照文章开头介绍的文章配置后,编译时会报错:

// 编译出错
"behaviortree_cpp_v3/bt_factory.h" no such file or derectory

首先我们需要在c_cpp_properties.json中找到参数 includePath ,将BehaviorTree.CPP中的include文件夹添加进路径

"includePath": [
	"${workspaceFolder}/**",
	"E:\\Experiment\\c\\BehaviorTree.CPP\\include"
],

网上大部分的教程到此为止,但依然出现gcc编译错误,后来查阅资料得知vscode中c_cpp_properties.json的"includePath"只是告诉vscode插件在哪里找到头文件,便于进行源码查看和debug,并没有告诉gcc编译器这个路径。
所以我们还需要在tasks.json文件,找到参数 args 添加:

"args": [
        "-I",
        "E:\\Experiment\\c\\BehaviorTree.CPP\\include"
],

指定头文件路径,成功解决。

2.2 reference配置

解决上述问题后出现如下错误:

E:/Experiment/c/main.cpp:42: undefined reference to `BT::BehaviorTreeFactory::BehaviorTreeFactory()'

在网上寻找原因,链接: 这篇文章解决了这个问题,编译器只编译了bt_factory.h,而没编译bt_factory.cpp,所以要再在task.json的 args 参数中添加:

"args": [
        "-g",
        "E:\\Experiment\\c\\BehaviorTree.CPP\\src\\*.cpp",
],

下面给出task.json中完整的args参数:

"args": [
        "-fdiagnostics-color=always",
        "-g",
        "${file}",
        "E:\\Experiment\\c\\BehaviorTree.CPP\\src\\*.cpp",
        "-o",
        "${fileDirname}\\${fileBasenameNoExtension}.exe",
        "-I",
        "E:\\Experiment\\c\\BehaviorTree.CPP\\include"
],

成功解决!

3 其他问题

3.1 cmake问题

因为我们使用cmake,所以需要添加c.code-workspace,参考链接: 这篇文章
在这里插入图片描述
我们需要注意c.code-workspace与.vscode应在同级目录下。

3.2 应该还有其他问题,我想不起来了,想起来再更新。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值