Сборка DLL через CMake/Ninja
Полный CMakeLists для установленного C ABI.
Используйте native_probe.cpp и дескриптор из полного примера. CMake собирает отдельную DLL через C ABI; отсутствующая C++-обвязка не скачивается и не генерируется автоматически.
Сохраните рядом CMakeLists.txt:
cmake_minimum_required(VERSION 3.20)
project(ReckfellNativeProbe LANGUAGES CXX)
if(NOT WIN32 OR NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
message(FATAL_ERROR "This example targets Windows x64 only")
endif()
if(NOT EXISTS "${EXTENSION_SDK}/include/reckfellextension_interface.h")
message(FATAL_ERROR "Set EXTENSION_SDK to the installed Reckfell ExtensionSDK directory")
endif()
add_library(native_probe SHARED native_probe.cpp)
target_compile_features(native_probe PRIVATE cxx_std_17)
target_include_directories(native_probe PRIVATE "${EXTENSION_SDK}/include")
set_target_properties(native_probe PROPERTIES
PREFIX ""
OUTPUT_NAME "native_probe.windows.x86_64"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")В x64 Developer PowerShell с CMake, Ninja и MSVC задайте $Sdk абсолютным путём к установленному ExtensionSDK:
cmake -S . -B build -G Ninja -DEXTENSION_SDK="$Sdk" -DCMAKE_BUILD_TYPE=Debug
cmake --build buildДля этого одноконфигурационного генератора результат — build/bin/native_probe.windows.x86_64.dll. Положите его рядом с дескриптором в проекте и проверьте класс и константы после загрузки. Наличие DLL не доказывает её совместимость.
Файл явно ограничен Windows x64. Другой генератор или Release требует проверки каталога результата и зависимостей; не копируйте вслепую путь Debug. После смены компилятора, SDK или архитектуры используйте новый каталог сборки вместо старого CMake cache.
Проверены Ninja/Debug, сборка и загрузка DLL. Сборка движка и кросс-компиляция не выполнялись.