Соединение CMake против общей библиотеки по окнам: ошибка о не нахождении .lib файл

У меня есть определение библиотеки в CMake, который создает общую библиотеку из маленького набора файлов, и у меня есть он компилирующий очень хорошо и на Linux и на окнах.

Однако я также получил другую библиотеку, которая связывается против общей библиотеки, и она хорошо работает на Linux, однако, на окнах я получаю сообщение вдоль строк, или "ошибка не может найти Release/nnet.lib" во время разового ссылкой. Действительно ли там что-то является особенным, я должен сделать, чтобы заставить это связываться на окнах?

Редактирование, пример:

Основная общая библиотека (имена файлов, измененные для защиты невинного):

ADD_LIBRARY(nnet SHARED
  src/nnet/file_1.cc src/nnet/file_3.cc  
  src/nnet/file_2.cc src/nnet/file_4.cc)

И затем я создаю модуль Python, который связывается в библиотеке:

# Build python module
ADD_LIBRARY            (other_lib SHARED ${CMAKE_SOURCE_DIR}/src/boost/boost_main.cc)
TARGET_LINK_LIBRARIES  (other_lib nnet   ${PYTHON_LIBRARIES})

Остальное - просто шаблон (например: изменение расширения модуля .pyd на окнах, нахождение библиотек/заголовков Python, и т.д.) И затем при создании в VS 2008 я добираюсь:

фатальная ошибка LNK1181: не может открыть входной файл 'Release\nnet.lib'

при создании other_lib. Обратите внимание, что никакие ошибки не брошены при создании nnet.

5
задан gct 21 December 2009 в 21:46
поделиться

1 ответ

Ах, моя проблема в том, что я забыл включить __declspec(dllexport) в подходящих местах при сборке библиотеки (можете ли вы сказать, что я не занимаюсь оконным программированием?)

.
8
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: