我在CMake中有一个库定义,它从一小部分文件中构build一个共享库,并且我已经在linux和windows上编译好了。
不过,我也有另一个库,链接到共享库,它在Linux上工作正常,但是,在Windows上,我得到一个消息沿线或“错误无法findRelease / 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)
然后我build立一个链接到库中的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,findPython库/头等)然后,当在VS 2008中build立时,我得到:
致命错误LNK1181:无法打开input文件'Release \ nnet.lib'
当build立other_lib。 注意在构buildnnet时不会出现错误。
嗯,我的问题是我忘了在构建库的时候在合适的地方加入__declspec(dllexport)(你能告诉我不用Windows编程吗?)。
不,你不应该做任何特别的事情。 你能告诉我们一个最小的CMakeLists.txt这个问题吗? 你是否设置了任何可用于更改CMake放置输出文件的变量?