CMake链接到Windows上的共享库:关于找不到.lib文件的错误

时间:2009-12-21 17:25:06

标签: c++ windows cmake

我在CMake中有一个库定义,可以构建一个共享库 一小组文件,我已经在linux和windows上编译得很好。

但是,我还有另一个链接到共享库的库,它在linux上工作正常,但是,在Windows上我得到了一条消息或“错误找不到Release / nnet.lib”链接时。有什么特别的东西我必须做到这一点 在Windows上链接?

编辑,示例:

主共享库(更改文件名以保护无辜者):

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})

其余的只是样板(例如:在Windows上将模块扩展名更改为.pyd,查找python库/头文件等) 然后在VS 2008中建立时,我得到:

  

致命错误LNK1181:无法打开输入   文件'Release \ nnet.lib'

构建other_lib时。注意在构建nnet时不会抛出任何错误。

1 个答案:

答案 0 :(得分:8)

啊,我的问题是我忘记在构建库时在适当的位置包含一个__declspec(dllexport)(你能告诉我不要做很多windows编程吗?)。