Здравствуйте. Пытаюсь detour'нуть функцию по гайду, вот код:
*клик гитхаб*. Собственно все отлично, помимо того что ни VS2017, ни проект с CMake + MinGW выдают такие ошибки:
D:/Detour-master/dll/dllmain.cpp:46: undefined reference to `DetourTransactionBegin'
В папке с проектом лежит detours.lib, но ее никто не хочет линковать. В CMake проекте я прямо так и указываю:
cmake_minimum_required(VERSION 3.9)
project(dll)
find_library(psapi "D:/ProgrammingNew/Win-builds/mingw/lib/libpsapi.a")
find_library(detours "D:/Detour-master/dll/detours.lib") # <------------------------ вот
set(CMAKE_CXX_FLAGS "-fpermissive -w")
set(CMAKE_CXX_STANDARD 17)
add_library(dll SHARED
sigscan.h
dllmain.cpp
)
target_link_libraries(dll psapi)
#target_link_libraries(dll detours) # <------------------------ вот два
Если раскоментировать строчки, это приведет к самой проблеме:
d:/programmingnew/win-builds/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -ldetours
Если указать -L D:/Detour-master/dll в аргументы компилера, вылазит такое:
d:/programmingnew/win-builds/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible D:/Detour-master/dll/detours.lib when searching for -ldetours
d:/programmingnew/win-builds/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible D:/Detour-master/dll/detours.lib when searching for -ldetours
d:/programmingnew/win-builds/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible D:/Detour-master/dll\detours.lib when searching for -ldetours
d:/programmingnew/win-builds/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -ldetours
Вопрос: как поправить последнюю проблему? Версия detours - 4.0, пытался и с той, что идет в комплекте с репозиторием, и с собственоручно скомпилированной.
Заранее спасибо.