У меня есть развивающийся проект в CMake. Пора ссылаться на библиотеку, которая на данный момент существует только в Windows, функциональность Linux придется подождать. Я пытаюсь сделать это с помощью директив препроцессора, как рекомендовано в ответе на этот вопрос :
// MyLibHeader.hpp
#ifdef WIN32
#include <windows.h>
#define ProcHandle HINSTANCE
#define LoadLib LoadLibraryA
#define LoadSym GetProcAddress
#else
// ... I'll fill these in with dlopen etc. when necessary
Это первое специфичное для платформы включение, которое мне пришлось добавить в мой код, и, похоже, в этом есть нечто большее. Это генерирует эту ошибку:
C: \ Program Files (x86) \ Microsoft Visual Studio 8 \ VC \ include \ intrin.h (944): ошибка C2733: вторая связь C перегруженной функции _interlockedbittestandset не разрешена
Ошибка повторяется четыре раза, дважды в intrin.h и дважды в winnt.h. Итак, вот мой вопрос. Существуют ли другие шаги включения или препроцессора, которые мне нужно предпринять, чтобы заставить это работать внутри Windows (до сих пор это было базовое консольное приложение), и есть ли в CMake что-то, что я могу использовать, чтобы сделать это проще.