我在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库/ header 等)
然后在VS 2008中构建时,我得到:



在构建other_lib时。请注意,构建nnet时不会引发任何错误。

最佳答案

啊,我的问题是在构建库时我忘记在合适的位置包括__declspec(dllexport)(您能告诉我我不做很多Windows编程吗?)。

10-06 08:24