我在CMake中有一個正在發展的項目。現在是時候鏈接到一個圖書館,目前這種圖書館只存在於Windows中,Linux的功能將不得不等待。我試圖用預處理指令要做到這一點作爲一個答案建議this question:在CMake項目中包含Windows庫
// 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) : error C2733: second C linkage of overloaded function '_interlockedbittestandset' not allowed
錯誤重複四次,in intrin.h兩次,winnt.h兩次。所以這是我的問題。是否有其他包含或預處理器步驟,我需要採取這些步驟在Windows內部工作(到目前爲止它已經是一個基本的控制檯應用程序),並且我可以利用CMake中的某些東西來簡化它。
我必須說,我發現自己喜歡這麼兩輪牛車。 – 2NinerRomeo 2012-03-13 17:25:46
那個黑客確實成功了。 – 2NinerRomeo 2012-03-16 15:26:17
一個這樣的討論在這裏進行了編目:http://social.msdn.microsoft.com/Forums/en-US/vcprerelease/thread/61b5becd-90f9-40a4-b545-5f171fe45daa – 2NinerRomeo 2012-03-16 15:27:24