使用新版gcc编译含有使用asio网络库的项目出错[已解决]

SullivanTim
Posts: 2
Joined: Wed Jun 22, 2022 8:06 am

使用新版gcc编译含有使用asio网络库的项目出错[已解决]

Postby SullivanTim » Thu Jun 23, 2022 8:26 am

使用到asio部分相同的代码可以在gcc8.4的5.0版本中编译通过,但在最新的gcc11.2中编译失败

Code: Select all

/home/dev/.espressif/tools/riscv32-esp-elf/esp-2022r1-RC1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: esp-idf/asio/libasio.a(asio.cpp.obj): in function `std::enable_if<std::is_error_code_enum<asio::error::basic_errors>::value, std::error_code&>::type std::error_code::operator=<asio::error::basic_errors>(asio::error::basic_errors)':
/home/dev/.espressif/tools/riscv32-esp-elf/esp-2022r1-RC1-11.2.0/riscv32-esp-elf/riscv32-esp-elf/include/c++/11.2.0/system_error:210: undefined reference to `if_nametoindex(char const*)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/main.elf.dir/build.make:506: main.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:1936: CMakeFiles/main.elf.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
make failed with exit code 2
根据提示我在menuconfig中的lwip中开启了Enable usage of standard POSIX APIs in LWIP这个选项,因为我翻看了一下源码这个选项可以提供if_nametoindex这个函数,但是依旧无效,请教一下是否有解决方案

SullivanTim
Posts: 2
Joined: Wed Jun 22, 2022 8:06 am

Re: 使用新版gcc编译含有使用asio网络库的项目出错

Postby SullivanTim » Tue Jul 05, 2022 7:42 am

找到原因了。。。asio::ip::make_address用不了

Who is online

Users browsing this forum: Bing [Bot] and 58 guests