jmpews / Dobby

a lightweight, multi-platform, multi-architecture hook framework.
Apache License 2.0
3.89k stars 796 forks source link

Compile error on Windows #211

Open BombaxCeiba opened 1 year ago

BombaxCeiba commented 1 year ago

[ 45%] Building CXX object _deps/dobby-build/CMakeFiles/dobby.dir/source/TrampolineBridge/Trampoline/x86/trampoline_x86.cc.obj D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc: In function 'bool memory_region_comparator(MemRange, MemRange)': D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:13:13: error: 'struct MemRange' has no member named 'address' 13 | return (a.address > b.address); | ^~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:13:25: error: 'struct MemRange' has no member named 'address' 13 | return (a.address > b.address); | ^~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc: At global scope: D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:19:23: error: no declaration matches 'std::vector ProcessRuntimeUtility::GetProcessMemoryLayout()' 19 | std::vector ProcessRuntimeUtility::GetProcessMemoryLayout() { | ^~~~~ In file included from D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:1: D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/PlatformUtil/ProcessRuntimeUtility.h:21:40: note: candidate is: 'static const std::vector& ProcessRuntimeUtility::GetProcessMemoryLayout()' 21 | static const std::vector &GetProcessMemoryLayout(); | ^~~~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/PlatformUtil/ProcessRuntimeUtility.h:19:7: note: 'class ProcessRuntimeUtility' defined here 19 | class ProcessRuntimeUtility { | ^~~~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:66:28: error: no declaration matches 'std::vector<_RuntimeModule> ProcessRuntimeUtility::GetProcessModuleMap()' 66 | std::vector ProcessRuntimeUtility::GetProcessModuleMap() { | ^~~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/PlatformUtil/ProcessRuntimeUtility.h:23:44: note: candidate is: 'static const std::vector<_RuntimeModule>& ProcessRuntimeUtility::GetProcessModuleMap()' 23 | static const std::vector &GetProcessModuleMap(); | ^~~~~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/PlatformUtil/ProcessRuntimeUtility.h:19:7: note: 'class ProcessRuntimeUtility' defined here 19 | class ProcessRuntimeUtility { | ^~~~~ mingw32-make[2]: [_deps\dobby-build\builtin-plugin\SymbolResolver\CMakeFiles\symbol_resolver.dir\build.make:91: _deps/dobby-build/builtin-plugin/SymbolResolver/CMakeFiles/symbol_resolver.dir///source/Backend/UserMode/PlatformUtil/Windows/ProcessRuntimeUtility.cc.obj] Error 1 mingw32-make[1]: [CMakeFiles\Makefile2:397: _deps/dobby-build/builtin-plugin/SymbolResolver/CMakeFiles/symbol_resolver.dir/all] Error 2 mingw32-make[1]: *** Waiting for unfinished jobs....


[ 87%] Building CXX object _deps/dobby-build/CMakeFiles/dobby.dir/builtin-plugin/SymbolResolver/pe/dobby_symbol_resolver.cc.obj D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\builtin-plugin\SymbolResolver\pe\dobby_symbol_resolver.cc: In function 'void DobbySymbolResolver(const char, const char)': D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\builtin-plugin\SymbolResolver\pe\dobby_symbol_resolver.cc:20:26: warning: invalid conversion from 'FARPROC' {aka 'long long int ()()'} to 'void*' [-fpermissive] 20 result = GetProcAddress(hMod, symbol_name_pattern); ~~~~^~~~~~~~~
FARPROC {aka long long int (*)()}

D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\UnifiedInterface\platform-windows.cc:17:5: error: no declaration matches 'int OSMemory::AllocPageSize()' 17 | int OSMemory::AllocPageSize() { | ^~~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\UnifiedInterface\platform-windows.cc:17:5: note: no functions named 'int OSMemory::AllocPageSize()' In file included from D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\UnifiedInterface\platform-windows.cc:8: D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:74:7: note: 'class OSMemory' defined here 74 | class OSMemory { | ^~~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\UnifiedInterface\platform-windows.cc:37:7: error: no declaration matches 'void OSMemory::Allocate(void, int, MemoryPermission)' 37 | void OSMemory::Allocate(void address, int size, MemoryPermission access) { | ^~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:80:16: note: candidates are: 'static void OSMemory::Allocate(size_t, MemoryPermission, void)' 80 | static void Allocate(size_t size, MemoryPermission access, void fixed_address); | ^~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:78:16: note: 'static void OSMemory::Allocate(size_t, MemoryPermission)' 78 | static void Allocate(size_t size, MemoryPermission access); | ^~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:74:7: note: 'class OSMemory' defined here 74 | class OSMemory { | ^~~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\UnifiedInterface\platform-windows.cc:52:6: error: no declaration matches 'bool OSMemory::Free(void, int)' 52 | bool OSMemory::Free(void address, const int size) { | ^~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:82:15: note: candidate is: 'static bool OSMemory::Free(void, size_t)' 82 | static bool Free(void address, size_t size); | ^~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:74:7: note: 'class OSMemory' defined here 74 | class OSMemory { | ^~~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\UnifiedInterface\platform-windows.cc:59:6: error: no declaration matches 'bool OSMemory::Release(void, int)' 59 | bool OSMemory::Release(void address, int size) { | ^~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:84:15: note: candidate is: 'static bool OSMemory::Release(void, size_t)' 84 | static bool Release(void address, size_t size); | ^~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:74:7: note: 'class OSMemory' defined here 74 | class OSMemory { | ^~~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\UnifiedInterface\platform-windows.cc:66:6: error: no declaration matches 'bool OSMemory::SetPermission(void, int, MemoryPermission)' 66 | bool OSMemory::SetPermission(void address, int size, MemoryPermission access) { | ^~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:86:15: note: candidate is: 'static bool OSMemory::SetPermission(void, size_t, MemoryPermission)' 86 | static bool SetPermission(void address, size_t size, MemoryPermission access); | ^~~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/UnifiedInterface/platform.h:74:7: note: 'class OSMemory' defined here 74 | class OSMemory { | ^~~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\UnifiedInterface\platform-windows.cc: In function 'int GetProtectionFromMemoryPermission(MemoryPermission)': D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\UnifiedInterface\platform-windows.cc:15:1: warning: control reaches end of non-void function [-Wreturn-type] 15 | } | ^ mingw32-make[2]: [_deps\dobby-build\CMakeFiles\dobby.dir\build.make:796: _deps/dobby-build/CMakeFiles/dobby.dir/source/Backend/UserMode/UnifiedInterface/platform-windows.cc.obj] Error 1 mingw32-make[2]: Waiting for unfinished jobs.... D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc: In function 'bool memory_region_comparator(MemRange, MemRange)': D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:13:13: error: 'struct MemRange' has no member named 'address' 13 | return (a.address > b.address); | ^~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:13:25: error: 'struct MemRange' has no member named 'address' 13 | return (a.address > b.address); | ^~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc: At global scope: D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:19:23: error: no declaration matches 'std::vector ProcessRuntimeUtility::GetProcessMemoryLayout()' 19 | std::vector ProcessRuntimeUtility::GetProcessMemoryLayout() { | ^~~~~ In file included from D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:1: D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/PlatformUtil/ProcessRuntimeUtility.h:21:40: note: candidate is: 'static const std::vector& ProcessRuntimeUtility::GetProcessMemoryLayout()' 21 | static const std::vector &GetProcessMemoryLayout(); | ^~~~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/PlatformUtil/ProcessRuntimeUtility.h:19:7: note: 'class ProcessRuntimeUtility' defined here 19 | class ProcessRuntimeUtility { | ^~~~~ D:\Sources\CPP\OpenSourceProjects\FastCapture\build_deps\dobby-src\source\Backend\UserMode\PlatformUtil\Windows\ProcessRuntimeUtility.cc:66:28: error: no declaration matches 'std::vector<_RuntimeModule> ProcessRuntimeUtility::GetProcessModuleMap()' 66 | std::vector ProcessRuntimeUtility::GetProcessModuleMap() { | ^~~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/PlatformUtil/ProcessRuntimeUtility.h:23:44: note: candidate is: 'static const std::vector<_RuntimeModule>& ProcessRuntimeUtility::GetProcessModuleMap()' 23 | static const std::vector &GetProcessModuleMap(); | ^~~~~~~ D:/Sources/CPP/OpenSourceProjects/FastCapture/build/_deps/dobby-src/source/Backend/UserMode/PlatformUtil/ProcessRuntimeUtility.h:19:7: note: 'class ProcessRuntimeUtility' defined here 19 | class ProcessRuntimeUtility { | ^~~~~ mingw32-make[2]: [_deps\dobby-build\CMakeFiles\dobby.dir\build.make:781: _deps/dobby-build/CMakeFiles/dobby.dir/source/Backend/UserMode/PlatformUtil/Windows/ProcessRuntimeUtility.cc.obj] Error 1 mingw32-make[1]: [CMakeFiles\Makefile2:345: _deps/dobby-build/CMakeFiles/dobby.dir/all] Error 2 mingw32-make: *** [Makefile:135: all] Error 2 build finished with error(s).