ninja: Entering directory `build' [1/17] Compiling C++ object libAdsLib.a.p/AdsLib_standalone_AmsNetId.cpp.obj [2/17] Compiling C++ object libAdsLib.a.p/AdsLib_AdsDef.cpp.obj [3/17] Compiling C++ object libAdsLib.a.p/AdsLib_Log.cpp.obj FAILED: libAdsLib.a.p/AdsLib_Log.cpp.obj "c++" "-IlibAdsLib.a.p" "-I." "-I.." "-I..\AdsLib" "-I..\tools" "-fdiagnostics-color=always" "-pipe" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-Wnon-virtual-dtor" "-Wextra" "-Wpedantic" "-std=c++11" "-g" -MD -MQ libAdsLib.a.p/AdsLib_Log.cpp.obj -MF "libAdsLib.a.p\AdsLib_Log.cpp.obj.d" -o libAdsLib.a.p/AdsLib_Log.cpp.obj "-c" ../AdsLib/Log.cpp ../AdsLib/Log.cpp: In static member function 'static void Logger::Log(size_t, const string&)': ../AdsLib/Log.cpp:34:9: error: 'localtime_s' was not declared in this scope; did you mean 'localtime'? 34 | localtime_s(&temp, TIME_T); \ | ^~~~~~~~~~~ ../AdsLib/Log.cpp:60:9: note: in expansion of macro 'TIME_T_TO_STRING' 60 | TIME_T_TO_STRING(dateTime, &tt); | ^~~~~~~~~~~~~~~~ [4/17] Compiling C++ object libAdsLib.a.p/AdsLib_AdsFile.cpp.obj [5/17] Compiling C++ object libAdsLib.a.p/AdsLib_AdsDevice.cpp.obj [6/17] Compiling C++ object libAdsLib.a.p/AdsLib_Frame.cpp.obj [7/17] Compiling C++ object libAdsLib.a.p/AdsLib_Sockets.cpp.obj FAILED: libAdsLib.a.p/AdsLib_Sockets.cpp.obj "c++" "-IlibAdsLib.a.p" "-I." "-I.." "-I..\AdsLib" "-I..\tools" "-fdiagnostics-color=always" "-pipe" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-Wnon-virtual-dtor" "-Wextra" "-Wpedantic" "-std=c++11" "-g" -MD -MQ libAdsLib.a.p/AdsLib_Sockets.cpp.obj -MF "libAdsLib.a.p\AdsLib_Sockets.cpp.obj.d" -o libAdsLib.a.p/AdsLib_Sockets.cpp.obj "-c" ../AdsLib/Sockets.cpp ../AdsLib/Sockets.cpp: In function 'uint32_t getIpv4(const string&)': ../AdsLib/Sockets.cpp:47:25: error: 'getaddrinfo' was not declared in this scope; did you mean 'addrinfo'? 47 | const auto status = getaddrinfo(addr.c_str(), nullptr, &addrinfo, &res); | ^~~~~~~~~~~ | addrinfo ../AdsLib/Sockets.cpp:53:5: error: 'freeaddrinfo' was not declared in this scope; did you mean 'addrinfo'? 53 | freeaddrinfo(res); | ^~~~~~~~~~~~ | addrinfo [8/17] Compiling C++ object libAdsLib.a.p/AdsLib_standalone_AmsConnection.cpp.obj FAILED: libAdsLib.a.p/AdsLib_standalone_AmsConnection.cpp.obj "c++" "-IlibAdsLib.a.p" "-I." "-I.." "-I..\AdsLib" "-I..\tools" "-fdiagnostics-color=always" "-pipe" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-Wnon-virtual-dtor" "-Wextra" "-Wpedantic" "-std=c++11" "-g" -MD -MQ libAdsLib.a.p/AdsLib_standalone_AmsConnection.cpp.obj -MF "libAdsLib.a.p\AdsLib_standalone_AmsConnection.cpp.obj.d" -o libAdsLib.a.p/AdsLib_standalone_AmsConnection.cpp.obj "-c" ../AdsLib/standalone/AmsConnection.cpp In file included from ..\AdsLib/NotificationDispatcher.h:27, from ..\AdsLib/AmsPort.h:25, from ..\AdsLib/AmsConnection.h:25, from ../AdsLib/standalone/AmsConnection.cpp:23: ..\AdsLib/Semaphore.h:29:10: error: 'mutex' in namespace 'std' does not name a type 29 | std::mutex mutex; | ^~~~~ ..\AdsLib/Semaphore.h:11:1: note: 'std::mutex' is defined in header ''; did you forget to '#include '? 10 | #include +++ |+#include 11 | ..\AdsLib/Semaphore.h:30:10: error: 'condition_variable' in namespace 'std' does not name a type 30 | std::condition_variable cv; | ^~~~~~~~~~~~~~~~~~ ..\AdsLib/Semaphore.h:11:1: note: 'std::condition_variable' is defined in header ''; did you forget to '#include '? 10 | #include +++ |+#include 11 | ..\AdsLib/Semaphore.h: In member function 'void Semaphore::release()': ..\AdsLib/Semaphore.h:15:31: error: 'mutex' is not a member of 'std' 15 | std::unique_lock lock(mutex); | ^~~~~ ..\AdsLib/Semaphore.h:15:31: note: 'std::mutex' is defined in header ''; did you forget to '#include '? ..\AdsLib/Semaphore.h:15:31: error: 'mutex' is not a member of 'std' ..\AdsLib/Semaphore.h:15:31: note: 'std::mutex' is defined in header ''; did you forget to '#include '? ..\AdsLib/Semaphore.h:15:36: error: template argument 1 is invalid 15 | std::unique_lock lock(mutex); | ^ ..\AdsLib/Semaphore.h:15:43: error: 'mutex' was not declared in this scope 15 | std::unique_lock lock(mutex); | ^~~~~ ..\AdsLib/Semaphore.h:17:9: error: 'cv' was not declared in this scope 17 | cv.notify_one(); | ^~ ..\AdsLib/Semaphore.h:15:38: warning: unused variable 'lock' [-Wunused-variable] 15 | std::unique_lock lock(mutex); | ^~~~ ..\AdsLib/Semaphore.h: In member function 'void Semaphore::acquire()': ..\AdsLib/Semaphore.h:22:31: error: 'mutex' is not a member of 'std' 22 | std::unique_lock lock(mutex); | ^~~~~ ..\AdsLib/Semaphore.h:22:31: note: 'std::mutex' is defined in header ''; did you forget to '#include '? ..\AdsLib/Semaphore.h:22:31: error: 'mutex' is not a member of 'std' ..\AdsLib/Semaphore.h:22:31: note: 'std::mutex' is defined in header ''; did you forget to '#include '? ..\AdsLib/Semaphore.h:22:36: error: template argument 1 is invalid 22 | std::unique_lock lock(mutex); | ^ ..\AdsLib/Semaphore.h:22:43: error: 'mutex' was not declared in this scope 22 | std::unique_lock lock(mutex); | ^~~~~ ..\AdsLib/Semaphore.h:23:9: error: 'cv' was not declared in this scope 23 | cv.wait(lock, [&](){return count > 0; }); | ^~ In file included from ..\AdsLib/AmsPort.h:25, from ..\AdsLib/AmsConnection.h:25, from ../AdsLib/standalone/AmsConnection.cpp:23: ..\AdsLib/NotificationDispatcher.h: At global scope: ..\AdsLib/NotificationDispatcher.h:48:10: error: 'recursive_mutex' in namespace 'std' does not name a type 48 | std::recursive_mutex mutex; | ^~~~~~~~~~~~~~~ ..\AdsLib/NotificationDispatcher.h:33:1: note: 'std::recursive_mutex' is defined in header ''; did you forget to '#include '? 32 | #include +++ |+#include 33 | ..\AdsLib/NotificationDispatcher.h:51:10: error: 'thread' in namespace 'std' does not name a type 51 | std::thread thread; | ^~~~~~ ..\AdsLib/NotificationDispatcher.h:33:1: note: 'std::thread' is defined in header ''; did you forget to '#include '? 32 | #include +++ |+#include 33 | In file included from ..\AdsLib/AmsConnection.h:25, from ../AdsLib/standalone/AmsConnection.cpp:23: ..\AdsLib/AmsPort.h:42:10: error: 'mutex' in namespace 'std' does not name a type 42 | std::mutex mutex; | ^~~~~ ..\AdsLib/AmsPort.h:26:1: note: 'std::mutex' is defined in header ''; did you forget to '#include '? 25 | #include "NotificationDispatcher.h" +++ |+#include 26 | In file included from ../AdsLib/standalone/AmsConnection.cpp:23: ..\AdsLib/AmsConnection.h:82:10: error: 'mutex' in namespace 'std' does not name a type 82 | std::mutex mutex; | ^~~~~ ..\AdsLib/AmsConnection.h:28:1: note: 'std::mutex' is defined in header ''; did you forget to '#include '? 27 | #include "Router.h" +++ |+#include 28 | ..\AdsLib/AmsConnection.h:83:10: error: 'condition_variable' in namespace 'std' does not name a type 83 | std::condition_variable cv; | ^~~~~~~~~~~~~~~~~~ ..\AdsLib/AmsConnection.h:28:1: note: 'std::condition_variable' is defined in header ''; did you forget to '#include '? 27 | #include "Router.h" +++ |+#include 28 | ..\AdsLib/AmsConnection.h:99:10: error: 'thread' in namespace 'std' does not name a type 99 | std::thread receiver; | ^~~~~~ ..\AdsLib/AmsConnection.h:28:1: note: 'std::thread' is defined in header ''; did you forget to '#include '? 27 | #include "Router.h" +++ |+#include 28 | ..\AdsLib/AmsConnection.h:118:10: error: 'recursive_mutex' in namespace 'std' does not name a type 118 | std::recursive_mutex dispatcherListMutex; | ^~~~~~~~~~~~~~~ ..\AdsLib/AmsConnection.h:118:5: note: 'std::recursive_mutex' is defined in header ''; did you forget to '#include '? 118 | std::recursive_mutex dispatcherListMutex; | ^~~ ../AdsLib/standalone/AmsConnection.cpp: In member function 'void AmsResponse::Notify(uint32_t)': ../AdsLib/standalone/AmsConnection.cpp:33:27: error: 'mutex' is not a member of 'std' 33 | std::unique_lock lock(mutex); | ^~~~~ ../AdsLib/standalone/AmsConnection.cpp:25:1: note: 'std::mutex' is defined in header ''; did you forget to '#include '? 24 | #include "Log.h" +++ |+#include 25 | ../AdsLib/standalone/AmsConnection.cpp:33:27: error: 'mutex' is not a member of 'std' 33 | std::unique_lock lock(mutex); | ^~~~~ ../AdsLib/standalone/AmsConnection.cpp:33:27: note: 'std::mutex' is defined in header ''; did you forget to '#include '? ../AdsLib/standalone/AmsConnection.cpp:33:32: error: template argument 1 is invalid 33 | std::unique_lock lock(mutex); | ^ ../AdsLib/standalone/AmsConnection.cpp:33:39: error: 'mutex' was not declared in this scope 33 | std::unique_lock lock(mutex); | ^~~~~ ../AdsLib/standalone/AmsConnection.cpp:35:5: error: 'cv' was not declared in this scope; did you mean 'recv'? 35 | cv.notify_all(); | ^~ | recv ../AdsLib/standalone/AmsConnection.cpp:33:34: warning: unused variable 'lock' [-Wunused-variable] 33 | std::unique_lock lock(mutex); | ^~~~ ../AdsLib/standalone/AmsConnection.cpp: In member function 'uint32_t AmsResponse::Wait()': ../AdsLib/standalone/AmsConnection.cpp:40:27: error: 'mutex' is not a member of 'std' 40 | std::unique_lock lock(mutex); | ^~~~~ ../AdsLib/standalone/AmsConnection.cpp:40:27: note: 'std::mutex' is defined in header ''; did you forget to '#include '? ../AdsLib/standalone/AmsConnection.cpp:40:27: error: 'mutex' is not a member of 'std' ../AdsLib/standalone/AmsConnection.cpp:40:27: note: 'std::mutex' is defined in header ''; did you forget to '#include '? ../AdsLib/standalone/AmsConnection.cpp:40:32: error: template argument 1 is invalid 40 | std::unique_lock lock(mutex); | ^ ../AdsLib/standalone/AmsConnection.cpp:40:39: error: 'mutex' was not declared in this scope 40 | std::unique_lock lock(mutex); | ^~~~~ ../AdsLib/standalone/AmsConnection.cpp:42:5: error: 'cv' was not declared in this scope; did you mean 'recv'? 42 | cv.wait_until(lock, request.load()->deadline, [&]() { return !invokeId.load(); }); | ^~ | recv ../AdsLib/standalone/AmsConnection.cpp: In member function 'SharedDispatcher AmsConnection::DispatcherListAdd(const VirtualConnection&)': ../AdsLib/standalone/AmsConnection.cpp:60:26: error: 'recursive_mutex' is not a member of 'std' 60 | std::lock_guard lock(dispatcherListMutex); | ^~~~~~~~~~~~~~~ ../AdsLib/standalone/AmsConnection.cpp:60:26: note: 'std::recursive_mutex' is defined in header ''; did you forget to '#include '? ../AdsLib/standalone/AmsConnection.cpp:60:26: error: 'recursive_mutex' is not a member of 'std' ../AdsLib/standalone/AmsConnection.cpp:60:26: note: 'std::recursive_mutex' is defined in header ''; did you forget to '#include '? ../AdsLib/standalone/AmsConnection.cpp:60:41: error: template argument 1 is invalid 60 | std::lock_guard lock(dispatcherListMutex); | ^ ../AdsLib/standalone/AmsConnection.cpp:60:48: error: 'dispatcherListMutex' was not declared in this scope; did you mean 'dispatcherList'? 60 | std::lock_guard lock(dispatcherListMutex); | ^~~~~~~~~~~~~~~~~~~ | dispatcherList ../AdsLib/standalone/AmsConnection.cpp:60:43: warning: unused variable 'lock' [-Wunused-variable] 60 | std::lock_guard lock(dispatcherListMutex); | ^~~~ ../AdsLib/standalone/AmsConnection.cpp: In member function 'SharedDispatcher AmsConnection::DispatcherListGet(const VirtualConnection&)': ../AdsLib/standalone/AmsConnection.cpp:72:26: error: 'recursive_mutex' is not a member of 'std' 72 | std::lock_guard lock(dispatcherListMutex); | ^~~~~~~~~~~~~~~ ../AdsLib/standalone/AmsConnection.cpp:72:26: note: 'std::recursive_mutex' is defined in header ''; did you forget to '#include '? ../AdsLib/standalone/AmsConnection.cpp:72:26: error: 'recursive_mutex' is not a member of 'std' ../AdsLib/standalone/AmsConnection.cpp:72:26: note: 'std::recursive_mutex' is defined in header ''; did you forget to '#include '? ../AdsLib/standalone/AmsConnection.cpp:72:41: error: template argument 1 is invalid 72 | std::lock_guard lock(dispatcherListMutex); | ^ ../AdsLib/standalone/AmsConnection.cpp:72:48: error: 'dispatcherListMutex' was not declared in this scope; did you mean 'dispatcherList'? 72 | std::lock_guard lock(dispatcherListMutex); | ^~~~~~~~~~~~~~~~~~~ | dispatcherList ../AdsLib/standalone/AmsConnection.cpp:72:43: warning: unused variable 'lock' [-Wunused-variable] 72 | std::lock_guard lock(dispatcherListMutex); | ^~~~ ../AdsLib/standalone/AmsConnection.cpp: In constructor 'AmsConnection::AmsConnection(Router&, IpV4)': ../AdsLib/standalone/AmsConnection.cpp:89:5: error: 'receiver' was not declared in this scope; did you mean 'Receive'? 89 | receiver = std::thread(&AmsConnection::TryRecv, this); | ^~~~~~~~ | Receive ../AdsLib/standalone/AmsConnection.cpp:89:21: error: 'thread' is not a member of 'std' 89 | receiver = std::thread(&AmsConnection::TryRecv, this); | ^~~~~~ ../AdsLib/standalone/AmsConnection.cpp:25:1: note: 'std::thread' is defined in header ''; did you forget to '#include '? 24 | #include "Log.h" +++ |+#include 25 | ../AdsLib/standalone/AmsConnection.cpp: In destructor 'AmsConnection::~AmsConnection()': ../AdsLib/standalone/AmsConnection.cpp:95:5: error: 'receiver' was not declared in this scope; did you mean 'Receive'? 95 | receiver.join(); | ^~~~~~~~ | Receive ninja: build stopped: subcommand failed.