compile.26
build number: 26
re-implement command
docker pull immortalwrt/opde:sdk
docker run -it --rm immortalwrt/opde:sdk zsh # or bash
export http_proxy= # [your proxy], do not use localhost or 127.0.0.1
export https_proxy=$http_proxy
opde feeds && opde config -a
make package/feeds/packages/subconverter/compile -j$(nproc) || make package/feeds/packages/subconverter/compile V=s
Compile.txt
-- The CXX compiler identification is GNU 8.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /openwrt/staging_dir/toolchain-x86_64_gcc-8.4.0_musl/bin/x86_64-openwrt-linux-musl-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAVE_TO_STRING
-- Performing Test HAVE_TO_STRING - Failed
-- Found PkgConfig: /openwrt/staging_dir/host/bin/pkg-config (found version "1.8.0")
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Checking for module 'libevent>=2.1.10'
-- Found libevent, version 2.1.12
-- Found CURL: /openwrt/staging_dir/target-x86_64_musl/usr/lib/libcurl.so (found suitable version "7.79.0", minimum required is "7.54.0")
-- Found rapidjson header files in /openwrt/staging_dir/target-x86_64_musl/usr/include
-- Checking for module 'yaml-cpp>=0.6.3'
-- Found yaml-cpp, version 0.7.0
-- Found PCRE2: /openwrt/staging_dir/target-x86_64_musl/usr/lib/libpcre2-8.so
-- Found QuickJS: /openwrt/staging_dir/target-x86_64_musl/usr/include
-- Found LibCron: /openwrt/staging_dir/target-x86_64_musl/usr/include /openwrt/staging_dir/target-x86_64_musl/usr/include
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
CMAKE_ASM_COMPILER
CMAKE_ASM_COMPILER_LAUNCHER
CMAKE_C_COMPILER
CMAKE_C_FLAGS_RELEASE
CMAKE_EXPORT_NO_PACKAGE_REGISTRY
CMAKE_EXPORT_PACKAGE_REGISTRY
CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
DL_LIBRARY
-- Build files have been written to: /openwrt/build_dir/target-x86_64_musl/subconverter-0.7.1-2021-10-01-94696a5d
ninja: Entering directory `/openwrt/build_dir/target-x86_64_musl/subconverter-0.7.1-2021-10-01-94696a5d'
[1/25] Building CXX object CMakeFiles/subconverter.dir/src/generator/config/nodemanip.cpp.o
[2/25] Building CXX object CMakeFiles/subconverter.dir/src/generator/config/ruleconvert.cpp.o
[3/25] Building CXX object CMakeFiles/subconverter.dir/src/generator/config/subexport.cpp.o
[4/25] Building CXX object CMakeFiles/subconverter.dir/src/generator/template/templates.cpp.o
[5/25] Building CXX object CMakeFiles/subconverter.dir/src/handler/interfaces.cpp.o
[6/25] Building CXX object CMakeFiles/subconverter.dir/src/handler/multithread.cpp.o
[7/25] Building CXX object CMakeFiles/subconverter.dir/src/handler/upload.cpp.o
[8/25] Building CXX object CMakeFiles/subconverter.dir/src/handler/webget.cpp.o
[9/25] Building CXX object CMakeFiles/subconverter.dir/src/main.cpp.o
[10/25] Building CXX object CMakeFiles/subconverter.dir/src/parser/infoparser.cpp.o
[11/25] Building CXX object CMakeFiles/subconverter.dir/src/parser/subparser.cpp.o
[12/25] Building CXX object CMakeFiles/subconverter.dir/src/script/cron.cpp.o
[13/25] Building CXX object CMakeFiles/subconverter.dir/src/script/script_quickjs.cpp.o
In file included from src/script/script_quickjs.cpp:4:
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = std::basic_string<char>; Args = {const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool}; R (* F)(Args ...) = makeDataURI; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<makeDataURI, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = makeDataURI; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:506:57: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
return JS_NewCFunction(ctx, [](JSContext * ctx, JSValueConst this_value, int argc,
^
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = qjs_fetch_Response; Args = {qjs_fetch_Request}; R (* F)(Args ...) = qjs_fetch; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<qjs_fetch, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = qjs_fetch; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:507:37: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = std::basic_string<char>; Args = {const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; R (* F)(Args ...) = base64Encode; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<base64Encode, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = base64Encode; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:508:39: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = std::basic_string<char>; Args = {const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool}; R (* F)(Args ...) = base64Decode; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<base64Decode, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = base64Decode; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:509:39: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = unsigned int; Args = {}; R (* F)(Args ...) = currentTime; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<currentTime, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = currentTime; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:510:38: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = void; Args = {int}; R (* F)(Args ...) = sleepMs; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<sleepMs, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = sleepMs; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:511:35: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = int; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, short unsigned int}; R (* F)(Args ...) = ShowMsgbox; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<ShowMsgbox, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = ShowMsgbox; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:512:39: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = std::basic_string<char>; Args = {const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; R (* F)(Args ...) = getUrlArg; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<getUrlArg, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = getUrlArg; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:513:41: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = std::basic_string<char>; Args = {const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool}; R (* F)(Args ...) = fileGet; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<fileGet, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = fileGet; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:514:37: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
include/quickjspp.hpp: In instantiation of 'static JSValue qjs::js_traits<qjs::fwrapper<F, PassThis> >::wrap(JSContext*, qjs::fwrapper<F, PassThis>) [with R = int; Args = {const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool}; R (* F)(Args ...) = fileWrite; bool PassThis = false; JSValue = JSValue; JSContext = JSContext]':
include/quickjspp.hpp:964:69: required from 'qjs::detail::property_proxy<Key>& qjs::detail::property_proxy<Key>::operator=(Value) [with Value = qjs::fwrapper<fileWrite, false>; Key = const char*]'
include/quickjspp.hpp:1103:23: required from 'std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> qjs::Value::add(const char*) [with auto F = fileWrite; std::enable_if_t<(! is_member_object_pointer_v<decltype (F)>), qjs::Value&> = qjs::Value&]'
src/script/script_quickjs.cpp:515:41: required from here
include/quickjspp.hpp:607:70: warning: parameter 'this_value' set but not used [-Wunused-but-set-parameter]
include/quickjspp.hpp: In instantiation of 'Tuple qjs::detail::unwrap_args_impl(JSContext*, JSValue*, std::index_sequence<__indices ...>) [with Tuple = std::tuple<>; long unsigned int ...I = {}; JSContext = JSContext; JSValue = JSValue; std::index_sequence<__indices ...> = std::integer_sequence<long unsigned int>]':
include/quickjspp.hpp:507:63: required from 'std::tuple<std::decay_t<Args>...> qjs::detail::unwrap_args(JSContext*, JSValue*) [with Args = {}; JSContext = JSContext; JSValue = JSValue]'
include/quickjspp.hpp:686:107: required from 'static JSValue qjs::js_traits<qjs::ctor_wrapper<T, Args ...> >::wrap(JSContext*, qjs::ctor_wrapper<T, Args ...>) [with T = qjs_fetch_Headers; Args = {}; JSValue = JSValue; JSContext = JSContext]'
include/quickjspp.hpp:1011:45: required from 'qjs::Value::Value(JSContext*, T&&) [with T = qjs::ctor_wrapper<qjs_fetch_Headers>; JSContext = JSContext]'
include/quickjspp.hpp:1434:69: required from 'qjs::Value qjs::Context::newValue(T&&) [with T = qjs::ctor_wrapper<qjs_fetch_Headers>]'
include/quickjspp.hpp:1348:23: required from 'qjs::Context::Module::class_registrar<T>& qjs::Context::Module::class_registrar<T>::constructor(const char*) [with Args = {}; T = qjs_fetch_Headers]'
src/script/script_quickjs.cpp:443:28: required from here
include/quickjspp.hpp:496:36: warning: parameter 'ctx' set but not used [-Wunused-but-set-parameter]
Tuple unwrap_args_impl(JSContext * ctx, JSValueConst * argv, std::index_sequence<I...>)
~~~~~~~~~~~~^~~
[14/25] Building CXX object CMakeFiles/subconverter.dir/src/server/webserver_libevent.cpp.o
[15/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/base64/base64.cpp.o
[16/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/codepage.cpp.o
[17/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/file.cpp.o
[18/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/logger.cpp.o
[19/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/md5/md5.cpp.o
[20/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/network.cpp.o
[21/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/regexp.cpp.o
[22/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/string.cpp.o
[23/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/system.cpp.o
[24/25] Building CXX object CMakeFiles/subconverter.dir/src/utils/urlencode.cpp.o
[25/25] Linking CXX executable subconverter
FAILED: subconverter
: && /openwrt/staging_dir/toolchain-x86_64_gcc-8.4.0_musl/bin/x86_64-openwrt-linux-musl-g++ -DPIC -fpic -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -fmacro-prefix-map=/openwrt/build_dir/target-x86_64_musl/subconverter-0.7.1-2021-10-01-94696a5d=subconverter-0.7.1-2021-10-01-94696a5d -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -O3 -Wall -Wextra -ffunction-sections -fdata-sections -flto -DNDEBUG -latomic CMakeFiles/subconverter.dir/src/generator/config/nodemanip.cpp.o CMakeFiles/subconverter.dir/src/generator/config/ruleconvert.cpp.o CMakeFiles/subconverter.dir/src/generator/config/subexport.cpp.o CMakeFiles/subconverter.dir/src/generator/template/templates.cpp.o CMakeFiles/subconverter.dir/src/handler/interfaces.cpp.o CMakeFiles/subconverter.dir/src/handler/multithread.cpp.o CMakeFiles/subconverter.dir/src/handler/upload.cpp.o CMakeFiles/subconverter.dir/src/handler/webget.cpp.o CMakeFiles/subconverter.dir/src/main.cpp.o CMakeFiles/subconverter.dir/src/parser/infoparser.cpp.o CMakeFiles/subconverter.dir/src/parser/subparser.cpp.o CMakeFiles/subconverter.dir/src/script/cron.cpp.o CMakeFiles/subconverter.dir/src/script/script_quickjs.cpp.o CMakeFiles/subconverter.dir/src/server/webserver_libevent.cpp.o CMakeFiles/subconverter.dir/src/utils/base64/base64.cpp.o CMakeFiles/subconverter.dir/src/utils/codepage.cpp.o CMakeFiles/subconverter.dir/src/utils/file.cpp.o CMakeFiles/subconverter.dir/src/utils/logger.cpp.o CMakeFiles/subconverter.dir/src/utils/md5/md5.cpp.o CMakeFiles/subconverter.dir/src/utils/network.cpp.o CMakeFiles/subconverter.dir/src/utils/regexp.cpp.o CMakeFiles/subconverter.dir/src/utils/string.cpp.o CMakeFiles/subconverter.dir/src/utils/system.cpp.o CMakeFiles/subconverter.dir/src/utils/urlencode.cpp.o -o subconverter /openwrt/staging_dir/target-x86_64_musl/usr/lib/libevent.so /openwrt/staging_dir/target-x86_64_musl/usr/lib/libcurl.so /openwrt/staging_dir/target-x86_64_musl/usr/lib/libyaml-cpp.so /openwrt/staging_dir/target-x86_64_musl/usr/lib/libpcre2-8.so /openwrt/staging_dir/target-x86_64_musl/usr/lib/libquickjs.a /openwrt/staging_dir/target-x86_64_musl/usr/lib/liblibcron.a && :
/openwrt/staging_dir/toolchain-x86_64_gcc-8.4.0_musl/lib/gcc/x86_64-openwrt-linux-musl/8.4.0/../../../../x86_64-openwrt-linux-musl/bin/ld: /openwrt/tmp/ccTkdd9H.ltrans1.ltrans.o: in function `render_template(std::string const&, template_args const&, std::string&, std::string const&) [clone .constprop.317]':
<artificial>:(.text._Z15render_templateRKSsRK13template_argsRSsS0_.constprop.317+0x89): undefined reference to `std::filesystem::path::_M_split_cmpts()'
/openwrt/staging_dir/toolchain-x86_64_gcc-8.4.0_musl/lib/gcc/x86_64-openwrt-linux-musl/8.4.0/../../../../x86_64-openwrt-linux-musl/bin/ld: <artificial>:(.text._Z15render_templateRKSsRK13template_argsRSsS0_.constprop.317+0x9d): undefined reference to `std::filesystem::canonical(std::filesystem::path const&)'
/openwrt/staging_dir/toolchain-x86_64_gcc-8.4.0_musl/lib/gcc/x86_64-openwrt-linux-musl/8.4.0/../../../../x86_64-openwrt-linux-musl/bin/ld: /openwrt/tmp/ccTkdd9H.ltrans26.ltrans.o: in function `std::_Function_handler<inja::Template (std::string const&, std::string const&), render_template(std::string const&, template_args const&, std::string&, std::string const&)::{lambda(std::string const&, std::string const&)#17}>::_M_invoke(std::_Any_data const&, std::string const&, std::string const&) [clone .lto_priv.907]':
<artificial>:(.text._ZNSt17_Function_handlerIFN4inja8TemplateERKSsS3_EZ15render_templateS3_RK13template_argsRSsS3_EUlS3_S3_E15_E9_M_invokeERKSt9_Any_dataS3_S3_.lto_priv.907+0xa6): undefined reference to `std::filesystem::path::_M_split_cmpts()'
/openwrt/staging_dir/toolchain-x86_64_gcc-8.4.0_musl/lib/gcc/x86_64-openwrt-linux-musl/8.4.0/../../../../x86_64-openwrt-linux-musl/bin/ld: <artificial>:(.text._ZNSt17_Function_handlerIFN4inja8TemplateERKSsS3_EZ15render_templateS3_RK13template_argsRSsS3_EUlS3_S3_E15_E9_M_invokeERKSt9_Any_dataS3_S3_.lto_priv.907+0xbc): undefined reference to `std::filesystem::canonical(std::filesystem::path const&)'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
make[3]: *** [Makefile:62: /openwrt/build_dir/target-x86_64_musl/subconverter-0.7.1-2021-10-01-94696a5d/.built] Error 1