2011-04-17 281 views
1

我目前正在嘗試編譯動態鏈接庫,這將在運行時與我正在編寫的應用程序鏈接。 我不知道如何調用這些庫,所以只是爲了確保:它們是您在編譯期間加載的那些庫,但在運行時使用:
- 使用libdl的dlopen/dlsync
- LoadLibrary /(另一個用一個複雜的名字)使用Windows。編譯動態鏈接庫

的事情是我無法找到一個CMake的路編譯Windows下的librairies:仍然

set(libName myLib) 
set(srcFiles myLib.cpp) 

add_library(${libName} MODULE ${srcFiles}) 

,運行Windows,它不會在所有的工作:使用Linux,這完美的作品: Makefile試圖鏈接myLib.cpp引用的一些代碼片段(但它不應該......這些符號應該在運行時解析)。

我正在使用CodeBlocks MinGW發生器,如果它可能有所幫助。

+0

你在這裏提供的代碼應該建立一個DLL就好了。你看到了什麼編譯器或鏈接器錯誤? – DLRdave 2011-04-18 13:21:36

回答

0

我認爲這將有助於:

add_library($ {libname}裏SHARED $ {srcfiles})

隨着CMake的文件說,模塊就可以用於建設圖書館應該使用的dlopen動態加載類似於的功能。在Windows上使用SHARED而不是MODULE。

+0

同樣的結果,不幸= /! – Michael 2011-04-17 16:29:02