大佬教程收集整理的这篇文章主要介绍了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 文档显示的内容。
以上是大佬教程为你收集整理的BSEC 库 Arduino 的问题全部内容,希望文章能够帮你解决BSEC 库 Arduino 的问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。