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

2019-05-12 05:56发布

我有在CMake的库定义,建立一个共享库出一小部分的文件,我已经得到它编译于Linux和Windows就好了。

不过,我也得到了对共享库链接的另一个库,它可以在Linux很好,但是,在Windows我相处线或消息“错误无法找到发布/ 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})

剩下的只是样板(如:改变模块扩展.pyd在Windows上,找到Python库/头文件等),然后建立在VS 2008中,当我得到:

致命错误LNK1181:无法打开输入文件“发布\ nnet.lib”

建设other_lib时。 请注意,同时建立NNET没有错误抛出。

Answer 1:

啊,我的问题是我忘了,包括在适当的地方__declspec(dllexport)的构建库时(你可以告诉我不这样做编程很多窗户?)。



文章来源: CMake linking against shared library on windows: error about not finding .lib file