我想为 xtensa 编译简单的 C++ 代码,但我不能。
代码:
全选#include "ets_sys.h"
#include "osapi.h"
#include "gpio.h"
#include "os_type.h"
#include "user_config.h"
#include "user_interface.h"
#include "espconn.h"
extern "C" void ICACHE_FLASH_ATTR
user_init()
{
//wifi_set_opmode(i);
}
我用这个命令编译了文件。
(这部作品)
代码:
全选xtensa-lx106-elf-g++ -I. -Os -g -O2 -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-func
tions -nostdlib -mlongcalls -mtext-section-literals -D__ets__ -DICACHE_FLASH -fno-rtti -fno-exceptions -c -o bin/user_main.o user_main.cpp
并与此相关联。
代码:
全选
xtensa-lx106-elf-gcc -L /home/esp-open-sdk/sdk/lib -T /home/esp-open-sdk/sdk/ld/eagle.app.v6.ld -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static -Wl,--start-group -lgcc -lmain -lnet80211 -lwpa -llwip -lpp -lphy -lc -lupgrade -Wl,--end-group bin/user_main.o -o bin/user_main
如果文件中使用了 SDK 中的任何函数,则链接结束时出现未定义的引用错误
代码:
全选bin/user_main.o:(.irom0.text+0x0): undefined reference to `wifi_set_opmode(unsigned char)'
bin/user_main.o: In function `user_init':
/home/esp/user_main.cpp:12: undefined reference to `wifi_set_opmode(unsigned char)'
collect2: error: ld returned 1 exit status
任何人都可以显示为 Xtensa 编译和链接 c++ 的最少命令吗?