程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了BSEC 库 Arduino 的问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决BSEC 库 Arduino 的问题?

开发过程中遇到BSEC 库 Arduino 的问题的问题如何解决?下面主要结合日常开发的经验,给出你关于BSEC 库 Arduino 的问题的解决方法建议,希望对你解决BSEC 库 Arduino 的问题有所启发或帮助;

我只想让库在 Arduino IDE 1.8.13 中运行。但是,它总是无法编译。 我已经调整了platform.txt,但它没有做任何事情。我已经从 github (https://github.com/BoschSensortec/BSEC-Arduino-library) 下载了这个库。 使用 ESP32 板进行编译时,它总是返回相同的错误。 我的错误在哪里?

这是调试代码:

librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o):(.literal._ZN4Bsec11beginCommonEv+0x4): undefined reference to `bsec_init'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o):(.literal._ZN4Bsec11beginCommonEv+0x8): undefined reference to `bsec_get_version'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o):(.literal._ZN4Bsec18updateSubscriptionEP21bsec_virtual_sensor_thf+0x0): undefined reference to `bsec_update_subscription'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o):(.literal._ZN4Bsec8setStateEPh+0x10): undefined reference to `bsec_set_state'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o):(.literal._ZN4Bsec15readProcessDataEx19bsec_bme_setTings_t+0x14): undefined reference to `bsec_do_steps'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o):(.literal._ZN4Bsec3runEx+0x0): undefined reference to `bsec_sensor_control'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o):(.literal._ZN4Bsec3runEx+0x4): undefined reference to `bsec_get_state'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o): In function `Bsec::beginCommon()':
/Users/service/documents/Arduino/librarIEs/BSEC_Software_library/src/bsec.cpp:476: undefined reference to `bsec_init'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o): In function `Bsec::getVersion()':
/Users/service/documents/Arduino/librarIEs/BSEC_Software_library/src/bsec.cpp:476: undefined reference to `bsec_get_version'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o): In function `Bsec::updateSubscription(bsec_virtual_sensor_t*,unsigned char,float)':
/Users/service/documents/Arduino/librarIEs/BSEC_Software_library/src/bsec.cpp:476: undefined reference to `bsec_update_subscription'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o): In function `Bsec::setState(unsigned char*)':
/Users/service/documents/Arduino/librarIEs/BSEC_Software_library/src/bsec.cpp:476: undefined reference to `bsec_set_state'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o): In function `Bsec::readProcessData(long long,bsec_bme_setTings_t)':
/Users/service/documents/Arduino/librarIEs/BSEC_Software_library/src/bsec.cpp:385: undefined reference to `bsec_do_steps'
librarIEs/BSEC_Software_library/BSEC_Software_library.a(bsec.cpp.o): In function `Bsec::run(long long)':
/Users/service/documents/Arduino/librarIEs/BSEC_Software_library/src/bsec.cpp:200: undefined reference to `bsec_init'
/Users/service/documents/Arduino/librarIEs/BSEC_Software_library/src/bsec.cpp:210: undefined reference to `bsec_update_subscription'
/Users/service/documents/Arduino/librarIEs/BSEC_Software_library/src/bsec.cpp:210: undefined reference to `bsec_sensor_control'
/Users/service/documents/Arduino/librarIEs/BSEC_Software_library/src/bsec.cpp:246: undefined reference to `bsec_get_state'
collect2: error: ld returned 1 exit status
exit status 1
Error compiling for board DOIT ESP32 DEVKIT V1.

谢谢

解决方法

如果您对 platform.txt 文件进行正确修改,Arduino IDE 1.8.13 将找到该库。我的文件位于此处:

C:\Users\(userName)\ApPDAta\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\platform.txt

首先确保一般更改在您的 platform.txt 文件中。也就是说,您定义了 compiler.libraries.ldflags。我的 platform.txt 已经将它定义为空,compiler.libraries.ldflags=。如果您的尚未定义,请在您的 platform.txt 文件中的某处添加该行。

接下来,您要引用它。您可以按照 ESP8266 的说明进行操作。更改以下内容:

recipe.c.combine.pattern="{Compiler.path}{Compiler.c.elf.cmD}" {Compiler.c.elf.flags} {Compiler.c.elf.extra_flags} {Compiler.libraries.ldflags} -Wl,--start-group {object_files} "{archive_file_path}" {Compiler.c.elf.libs} {Build.extra_libs} -Wl,--end-group -Wl,-EL -o "{Build.path}/{Build.project_name}.elf"

为此:

recipe.c.combine.pattern="{Compiler.path}{Compiler.c.elf.cmD}" {Compiler.c.elf.flags} {Compiler.c.elf.extra_flags} {Compiler.libraries.ldflags} -Wl,--start-group {object_files} "{archive_file_path}" {Compiler.c.elf.libs} {Compiler.libraries.ldflags} {Build.extra_libs} -Wl,-EL -o "{Build.path}/{Build.project_name}.elf"

注意最后一次出现的 compiler.libraries.ldflags。我上面显示的文本与 github 文档中显示的文本不完全匹配。我只是在 compiler.libraries.ldflags 指令之后添加了 --start-group,这是 github 文档显示的内容。

一旦我这样做了,保存了文件,并重新启动了 Arduino,它就成功地编译和链接了。

大佬总结

以上是大佬教程为你收集整理的BSEC 库 Arduino 的问题全部内容,希望文章能够帮你解决BSEC 库 Arduino 的问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。