Компилировать динамически связанные библиотеки - PullRequest
1 голос
/ 17 апреля 2011

В настоящее время я пытаюсь скомпилировать динамически связанные библиотеки, которые во время выполнения будут связываться с приложением, которое я пишу. Я не уверен, как называются эти библиотеки, так что просто чтобы быть уверенным: это те библиотеки, которые вы загружаете не во время компиляции, а во время выполнения, используя:
- dlopen / dlsync с использованием libdl
- LoadLibrary / (еще один со сложным именем) с использованием Windows.

Дело в том, что я не могу найти CMake-способ для компиляции этих библиотек под Windows: в Linux это прекрасно работает:

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

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

Тем не менее, под управлением Windows он не работает вообще: Makefile пытается связать некоторые фрагменты кода, на которые ссылается myLib.cpp (но это не должно делать ... эти символы должны быть разрешены во время выполнения) .

Я использую генератор CodeBlocks MinGW, если это поможет.

1 Ответ

0 голосов
/ 17 апреля 2011

Я думаю, что это поможет:

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

Как сказано в документации CMake, MODULE должен использоваться для создания библиотек, которые должны быть динамически загружены с использованием dlopen -подобной функциональности. В Windows используйте SHARED вместо MODULE.

...