yhirose / cpp-peglib

A single file C++ header-only PEG (Parsing Expression Grammars) library
MIT License
916 stars 113 forks source link

call_once failed in mingw64 #303

Closed sunshine725 closed 3 months ago

sunshine725 commented 3 months ago

Hi,I use cpp-peglib in my project, It raise errors when build by clang++, std::__once_callable no defined , since I call parse function in only one thread, can I remove all call_once function,can it work well? from

  bool is_token() const {
    std::call_once(is_token_init_, [this]() {
      is_token_ = TokenChecker::is_token(*get_core_operator());
    });
    return is_token_;
  }

replace to

  bool is_token() const {
if(!is_token_init_) {
  is_token_ = TokenChecker::is_token(*get_core_operator());
 is_token_init_ =true;
}
    return is_token_;
  }

cmd.exe /C "cd . && D:\MYBIN\mingw64\bin\clang++.exe -g -O0 @CMakeFiles\App.rsp -o CNC_master_V0.0.00c_210222.exe -Wl,--out-implib,libCNC_master_V0.0.00c_210222.dll.a -Wl,--major-image-version,0,--minor-image-version,0 && cmd.exe /C "cd /D D:\GitTfs\main\master_macro\out\build\1-win-cnc-Debug && D:\MYBIN\Anaconda3\python.exe D:/GitTfs/main/master_macro/knd/tools/python/cmake_copy_dlls.py --dlls D:/MYBIN/mingw64/bin/libstdc++-6.dll;D:/MYBIN/mingw64/bin/libwinpthread-1.dll;D:/MYBIN/mingw64/bin/libgcc_s_seh-1.dll;D:/MYBIN/Qt/6.6.3/mingw_64/bin/Qt6Core.dll;D:/MYBIN/Qt/6.6.3/mingw_64/bin/Qt6Gui.dll;D:/MYBIN/Qt/6.6.3/mingw_64/bin/Qt6Widgets.dll --output D:/GitTfs/main/master_macro/out/build/1-win-cnc-Debug/ && cd /D D:\GitTfs\main\master_macro\out\build\1-win-cnc-Debug && "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E env "PATH=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files\ARM\bin\win_32-pentium;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;F:!Work\Soft\GitTfs-0.30.13;C:\ProgramData\Anaconda3;C:\ProgramData\Anaconda3\Scripts;C:\ProgramData\Anaconda3\Library\bin;C:\Program Files\ARM\RVI\Tools\4.2\39\programs\win_32-pentium;C:\Program Files\ARM\RVI\Tools\3.4\43\programs\win_32-pentium;C:\Program Files\ARM\RVD\Core\4.1.2\38\win_32-pentium\bin;C:\Program Files\ARM\RVD\Core\4.0.3\35\win_32-pentium\bin;C:\Program Files\ARM\Utilities\FLEXlm\10.8.5.0\1\win_32-pentium;C:\Program Files\ARM\RVCT\Programs\4.0\650\win_32-pentium;C:\Program Files\TortoiseGit\bin;C:\Program Files\dotnet\;C:\Program Files\Graphviz\bin;D:\MYBIN\GitTfs-0.32.0;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\PyCharm Community Edition 2021.2\bin;;F:!Work\Soft\GitTfs-0.30.13;C:\Users\Administrator.dotnet\tools;D:\MYBIN\GitTfs-0.32.0;" "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe" -D TEST_TARGET=App -D TEST_EXECUTABLE=D:/GitTfs/main/master_macro/out/build/1-win-cnc-Debug/CNC_master_V0.0.00c_210222.exe -D TEST_EXECUTOR= -D TEST_WORKING_DIR=D:/GitTfs/main/master_macro/out/build/1-win-cnc-Debug -D TEST_SPEC= -D TEST_EXTRA_ARGS= -D TEST_PROPERTIES= -D TEST_PREFIX= -D TEST_SUFFIX= -D TEST_LIST=App_TESTS -D TEST_JUNIT_OUTPUT_DIR= -D CTEST_FILE=D:/GitTfs/main/master_macro/out/build/1-win-cnc-Debug/App_tests-b858cb2.cmake -P D:/GitTfs/main/master_macro/cmake/doctestAddTests.cmake && cd /D D:\GitTfs\main\master_macro\out\build\1-win-cnc-Debug && "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E make_directory D:/GitTfs/main/master_macro/out/build/1-win-cnc-Debug/plugins/platforms && cd /D D:\GitTfs\main\master_macro\out\build\1-win-cnc-Debug && "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E copy D:/MYBIN/Qt/6.6.3/mingw_64/plugins/platforms/qwindows.dll D:/GitTfs/main/master_macro/out/build/1-win-cnc-Debug/plugins/platforms/"" D:/MYBIN/mingw64/bin/ld: CMakeFiles/App.dir/knd/libs/CncSys/K2000PRJ/Kui/KuiAppList.cpp.obj: in function std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<peg::Definition::is_token() const::{lambda()#1}>(std::once_flag&, peg::Definition::is_token() const::{lambda()#1}&&)::{lambda()#1}>(peg::Definition::is_token() const::{lambda()#1}&)': D:/MYBIN/mingw64/include/c++/13.2.0/mutex:834:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_]+0x2b): undefined reference tostd::once_callable' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:834:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7]+0x2b): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol `std::once_callable' D:/MYBIN/mingw64/bin/ld: D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7]+0x57): undefined reference to std::__once_call' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_]+0x57): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbolstd::once_call' D:/MYBIN/mingw64/bin/ld: CMakeFiles/App.dir/knd/libs/CncSys/K2000PRJ/Kui/KuiAppList.cpp.obj: in function std::once_flag::_Prepare_execution::~_Prepare_execution()': D:/MYBIN/mingw64/include/c++/13.2.0/mutex:842:(.text$_ZNSt9once_flag18_Prepare_executionD2Ev[_ZNSt9once_flag18_Prepare_executionD2Ev]+0x1d): undefined reference tostd::once_callable' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:842:(.text$_ZNSt9once_flag18_Prepare_executionD2Ev[_ZNSt9once_flag18_Prepare_executionD2Ev]+0x1d): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol std::__once_callable' D:/MYBIN/mingw64/bin/ld: D:/MYBIN/mingw64/include/c++/13.2.0/mutex:843:(.text$_ZNSt9once_flag18_Prepare_executionD2Ev[_ZNSt9once_flag18_Prepare_executionD2Ev]+0x40): undefined reference tostd::once_call' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:843:(.text$_ZNSt9once_flag18_Prepare_executionD2Ev[_ZNSt9once_flag18_Prepare_executionD2Ev]+0x40): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol `std::once_call' D:/MYBIN/mingw64/bin/ld: CMakeFiles/App.dir/knd/libs/CncSys/K2000PRJ/Kui/KuiAppList.cpp.obj: in function std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<peg::Definition::is_token() const::{lambda()#1}>(std::once_flag&, peg::Definition::is_token() const::{lambda()#1}&&)::{lambda()#1}>(peg::Definition::is_token() const::{lambda()#1}&)::{lambda()#1}::operator()() const': D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_ENKUlvE_clEv[_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_ENKUlvE_clEv]+0x21): undefined reference tostd::once_callable' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_ENKUlvE_clEv[_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg10Definition8is_tokenEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_ENKUlvE_clEv]+0x21): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol `std::once_callable' D:/MYBIN/mingw64/bin/ld: CMakeFiles/App.dir/knd/libs/CncSys/K2000PRJ/Kui/KuiAppList.cpp.obj: in function std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<peg::parse_literal(char const*, unsigned long long, peg::SemanticValues&, peg::Context&, std::any&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::once_flag&, bool&, bool)::{lambda()#2}>(std::once_flag&, peg::parse_literal(char const*, unsigned long long, peg::SemanticValues&, peg::Context&, std::any&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::once_flag&, bool&, bool)::{lambda()#2}&&)::{lambda()#1}>(peg::parse_literal(char const*, unsigned long long, peg::SemanticValues&, peg::Context&, std::any&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::once_flag&, bool&, bool)::{lambda()#2}&)': D:/MYBIN/mingw64/include/c++/13.2.0/mutex:834:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvE_EERSN_[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvE_EERSN_]+0x2b): undefined reference tostd::once_callable' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:834:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvEEERSN[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvEEERSN]+0x2b): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol std::__once_callable' D:/MYBIN/mingw64/bin/ld: D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvE_EERSN_[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvE_EERSN_]+0x57): undefined reference tostd::once_call' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvEEERSN[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvEEERSN]+0x57): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol std::__once_call' D:/MYBIN/mingw64/bin/ld: CMakeFiles/App.dir/knd/libs/CncSys/K2000PRJ/Kui/KuiAppList.cpp.obj: in functionstd::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<peg::parse_literal(char const, unsigned long long, peg::SemanticValues&, peg::Context&, std::any&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::once_flag&, bool&, bool)::{lambda()#2}>(std::once_flag&, peg::parse_literal(char const, unsigned long long, peg::SemanticValues&, peg::Context&, std::any&, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::once_flag&, bool&, bool)::{lambda()#2}&&)::{lambda()#1}>(peg::parse_literal(char const*, unsigned long long, peg::SemanticValues&, peg::Context&, std::any&, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::once_flag&, bool&, bool)::{lambda()#2}&)::{lambda()#1}::operator()() const': D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvE_EERSN_ENKUlvE_clEv[_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvE_EERSN_ENKUlvE_clEv]+0x21): undefined reference to std::__once_callable' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvE_EERSN_ENKUlvE_clEv[_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZN3peg13parse_literalEPKcyRNS3_14SemanticValuesERNS3_7ContextERSt3anyRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS_RbbEUlvE0_JEEvSK_OT_DpOT0_EUlvE_EERSN_ENKUlvE_clEv]+0x21): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbolstd::once_callable' D:/MYBIN/mingw64/bin/ld: CMakeFiles/App.dir/knd/libs/CncSys/MACRO_LIB/pegparser/PegParse.cpp.obj: in function std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<peg::Definition::initialize_definition_ids() const::{lambda()#1}>(std::once_flag&, peg::Definition::initialize_definition_ids() const::{lambda()#1}&&)::{lambda()#1}>(peg::Definition::initialize_definition_ids() const::{lambda()#1}&)': D:/MYBIN/mingw64/include/c++/13.2.0/mutex:834:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_]+0x2b): undefined reference tostd::once_callable' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:834:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7]+0x2b): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol `std::once_callable' D:/MYBIN/mingw64/bin/ld: D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7]+0x57): undefined reference to `std::once_call' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS7]+0x57): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol std::__once_call' D:/MYBIN/mingw64/bin/ld: CMakeFiles/App.dir/knd/libs/CncSys/MACRO_LIB/pegparser/PegParse.cpp.obj: in functionstd::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<peg::Definition::initialize_definition_ids() const::{lambda()#1}>(std::once_flag&, peg::Definition::initialize_definition_ids() const::{lambda()#1}&&)::{lambda()#1}>(peg::Definition::initialize_definition_ids() const::{lambda()#1}&)::{lambda()#1}::operator()() const': D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_ENKUlvE_clEv[_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_ENKUlvE_clEv]+0x21): undefined reference to std::__once_callable' D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_ENKUlvE_clEv[_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg10Definition25initialize_definition_idsEvEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS7_ENKUlvE_clEv]+0x21): additional relocation overflows omitted from the output D:/MYBIN/mingw64/bin/ld: CMakeFiles/App.dir/knd/libs/CncSys/MACRO_LIB/pegparser/PegParse.cpp.obj: in functionstd::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<peg::Context::line_info(char const) const::{lambda()#1}>(std::once_flag&, peg::Context::line_info(char const) const::{lambda()#1}&&)::{lambda()#1}>(peg::Context::line_info(char const) const::{lambda()#1}&)': D:/MYBIN/mingw64/include/c++/13.2.0/mutex:834:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg7Context9line_infoEPKcEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS9[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg7Context9line_infoEPKcEUlvE_JEEvRS_OT_DpOT0_EUlvEEERS9]+0x2b): undefined reference to std::__once_callable' D:/MYBIN/mingw64/bin/ld: D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg7Context9line_infoEPKcEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS9_[_ZNSt9once_flag18_Prepare_executionC2IZSt9call_onceIZNK3peg7Context9line_infoEPKcEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS9_]+0x57): undefined reference tostd::__once_call' D:/MYBIN/mingw64/bin/ld: CMakeFiles/App.dir/knd/libs/CncSys/MACRO_LIB/pegparser/PegParse.cpp.obj: in function `std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<peg::Context::line_info(char const) const::{lambda()#1}>(std::once_flag&, peg::Context::line_info(char const) const::{lambda()#1}&&)::{lambda()#1}>(peg::Context::line_info(char const) const::{lambda()#1}&)::{lambda()#1}::operator()() const': D:/MYBIN/mingw64/include/c++/13.2.0/mutex:836:(.text$_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg7Context9line_infoEPKcEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS9_ENKUlvE_clEv[_ZZNSt9once_flag18_Prepare_executionC1IZSt9call_onceIZNK3peg7Context9line_infoEPKcEUlvE_JEEvRS_OT_DpOT0_EUlvE_EERS9_ENKUlvE_clEv]+0x21): undefined reference to `std::__once_callable

yhirose commented 3 months ago

@chutingxia std:: call_once is need to make cpp-peglib thread safe. So we can't remove it.