windows - Kompilere dynamicaly linkbare biblioteker

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger nu at kompilere dynamiske linkbare biblioteker, som ville forbinde i løbet af run-time med et program, jeg skriver.
Jeg er ikke sikker på, hvordan disse biblioteker bliver kaldt, så bare for at være sikker: de er de biblioteker, du ikke indlæser under compilation, men i løbet af løbetid ved hjælp af:

- dlopen/dlsync ved hjælp af libdl

- LoadLibrary/(en anden med et kompliceret navn) ved hjælp af Windows.


Sagen er, at jeg ikke kan finde en CMake-måde at kompilere disse librairies under Windows: med Linux fungerer det perfekt:


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

add\_library(${libName} MODULE ${srcFiles})


Alligevel kører Windows, det virker slet ikke: Makefile forsøger at forbinde nogle stykker kode, som myLib.cpp refererer til (men det bør ikke være, at disse symboler skal løses ved kørsel).


Jeg bruger mit CodeBlocks MinGW generator, hvis det kan hjælpe.

Bedste reference


Jeg tror, ​​det ville hjælpe:


add\_library ($ {libname} SHARED $ {srcfiles})


Som CMake-dokumentationen siger, skal MODULE bruges til at bygge biblioteker, der skal indlæses dynamisk ved hjælp af dlopen -lignende funktionalitet. På Windows skal du bruge SHARED i stedet for MODULE.