代码拉取完成,页面将自动刷新
我尝试将GPIO的相关操作封装成GPIO类,之后使一个LED类继承该GPIO类,具体代码如下:
class io{
public:
io() {};
virtual void io_init();
virtual void io_set_val(IotGpioValue val);
};
class led : public io
{
public:
led() {};
void io_init(){
IoTGpioInit(LED_TEST_GPIO);
hi_io_set_func(HI_IO_NAME_GPIO_9, HI_IO_FUNC_GPIO_9_GPIO);
IoTGpioSetDir(LED_TEST_GPIO, IOT_GPIO_DIR_OUT);
}
void io_set_val(IotGpioValue val){
IoTGpioSetOutputVal(LED_TEST_GPIO, val);
}
};
业务代码为控制LED灯闪烁,如下:
static void *LedTask(const char *arg)
{
(void)arg;
led a;
a.io_init();
int flag = 0;
IotGpioValue val = IOT_GPIO_VALUE0;
while (1) {
if(flag == 0){
val = IOT_GPIO_VALUE0;
flag = 1;
}
else{
val = IOT_GPIO_VALUE1;
flag = 0;
}
a.io_set_val(val);
osDelay(500);
}
return NULL;
}
我已经将引用的头文件如"iot_gpio.h"使用extern "C"声明,但我进行编译时出现了如下报错:
[OHOS ERROR] riscv32-unknown-elf-ld -nostartfiles -nostdlib -static --gc-sections -L/home/ws/Desktop/OpenHarmony_v3.0_LTS/device/hisilicon/hispark_pegasus/sdk_liteos/build/scripts/../../../../../huawei/hms/hilink/ohos/l0/hi3861/lib/wifi -L/home/ws/Downloads/gcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0 -Lbuild/build_tmp/libs/app/wifiiot_app -Lbuild/build_tmp/libs/components/at -Lbuild/build_tmp/libs/platform/drivers -Lbuild/build_tmp/libs/platform/system -Lbuild/build_tmp/scripts -Lbuild/libs -Lbuild/libs/hi3861/release/no_mesh -Lbuild/scripts -Lohos/libs -Tbuild/build_tmp/scripts/link.lds -Map=output/bin/Hi3861_wifiiot_app.map -o output/bin/Hi3861_wifiiot_app.out --start-group --no-whole-archive --whole-archive -ladc -lat -lauthmanager -lblackbox -lbootstrap -lbroadcast -lc_flash -lcfg -lcjson_static -lcmsis -lcpup -ldeviceauth -ldeviceauth_hal_liteos -ldiag -ldiscovery -ldrv -ldump_static -lflash -lgcc -lgpio -lhal_file_static -lhal_iothardware -lhal_sysparam -lhal_token_static -lhal_update_static -lhal_wifiaware -lhichainsdk -lhidumper_mini -lhievent_lite -lhilog_lite -lhiview_lite -lhota -lhuks_3.0_sdk -li2c -lio -liperf -llitekernel_flash -lltoswpa -llwip -lm_flash -lmbedtls -lmyapp -lnative_file -lparttab -lposix -lpwm -lres_cfg -lsamgr -lsamgr_adapter -lsamgr_source -lsdio -lsec_flash -lspiffs -lsysparam -lsystem -ltoken_static -ltrans_service -ltsensor -luart -lupg -lutils_kv_store -lwifi -lwifi_flash -lwifiaware -lwifiiot_app -lwifiservice -lwpa --end-group
[OHOS ERROR] riscv32-unknown-elf-ld: ohos/libs/libmyapp.a(libmyapp.hello_world.o):(.rodata._ZTI3led[_ZTI3led]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
[OHOS ERROR] riscv32-unknown-elf-ld: ohos/libs/libmyapp.a(libmyapp.hello_world.o):(.rodata._ZTI3led[_ZTI3led]+0x8): undefined reference to `typeinfo for io'
请问该错误是否是因为链接命令中"-nostdlib"选项导致没有链接c++标准库而造成的,如果是,我该如何取消该选项?如果不是,请问该如何修复这个报错。
感谢提交Issue!关于Issue的交互操作,请访问OpenHarmony社区支持命令清单。如果有问题,请联系 @NEEN @zengyawen @时睿 @Peter_1988 。如果需要调整订阅PR、Issue的变更状态,请访问链接。
Thanks for submitting the issue. For more commands, please visit OpenHarmony Command List. If you have any questions, please refer to committer @NEEN @zengyawen @时睿 @Peter_1988 for help. If you need to change the subscription of a Pull Request or Issue, please visit the link.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论