Hi, I am trying to use CMake on a open source project called cryptominisat ( https://github.com/msoos/cryptominisat ) which is initially developed under Linux, but is meanwhile partly ported to Windows. Source can already compiled (with a batch file) and run, but not yet completely with cmake.
It is also executed via AppVeyor, steps and log output see here: https://ci.appveyor.com/project/msoos/cryptominisat Mainly it is doing the following steps, also tried it on my local machine with downloaded and locally installed cmake 3.5.1 and Visual Studio 2015 in a x64 native tools command prompt: (replaced the %P% with c:\abc and I don't used logger DLL) cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=c:\abc msbuild "INSTALL.vcxproj" (I work in C:\projects\cryptominisat like AppVeyor) cmake seems to run, generating the *.vcxproj. During run these libs are generated: temp_lib_norm.lib and temp_lib_ipasir.lib Then there is a exe, but it always tell me it can't find ..\lib\Release\cryptominisat4.lib (using a different name then previous generated libs) It is doing Lib: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\Lib.exe /OUT:"temp_lib_norm.dir\Release\temp_lib_norm.lib" /NOLOGO /MACHINE:X64 /machine:x64 temp_lib_norm.dir\Release\cnf.obj -> This lib going to "temp_lib_norm.dir" Link: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\projects\cryptominisat\cmsat4-src\Release\cryptominisat4.dll" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:"C:/projects/cryptominisat/cmsat4-src/Release/cryptominisat4.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/projects/cryptominisat/lib/Release/cryptominisat4.lib" /MACHINE:X64 /machine:x64 /DLL "C:\projects\cryptominisat\cmsat4-src\temp_lib_norm.dir\Release\cnf.obj" -> This DLL going to "C:\projects\cryptominisat\cmsat4-src\Release\cryptominisat4.dll" Link: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\projects\cryptominisat\cmsat4-src\Release\cryptominisat4ipasir.dll" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib ..\lib\Release\cryptominisat4.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:"C:/projects/cryptominisat/cmsat4-src/Release/cryptominisat4ipasir.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/projects/cryptominisat/lib/Release/cryptominisat4ipasir.lib" /MACHINE:X64 /machine:x64 /DLL "C:\projects\cryptominisat\cmsat4-src\temp_lib_ipasir.dir\Release\ipasir.obj" LINK : fatal error LNK1181: cannot open input file '..\lib\Release\cryptominisat4.lib' [C:\projects\cryptominisat\cmsat4-src\libcryptominisat4ipasir.vcxproj] -> This time "..\lib\Release\cryptominisat4.lib" There seems to be a mixture of lib pathes and names, but interesting thing is, it seems to be working under Linux. I see that temp_lib_norm.lib is built in "cmsat4-src\temp_lib_norm.dir", but there seems to be no cryptominisat4.lib at all in these directories. I think this is the code for copying one lib to another: ( complete file see https://github.com/msoos/cryptominisat/blob/master/src/CMakeLists.txt line 151 ) add_library(libcryptominisat4 SHARED ${cms_lib_objects_norm}) target_link_libraries(libcryptominisat4 LINK_PUBLIC ${cryptoms_lib_link_libs} ) whereas list(APPEND cms_lib_objects_norm $<TARGET_OBJECTS:temp_lib_norm>) and add_library(temp_lib_norm OBJECT ${cryptoms_lib_files} cryptominisat.cpp ) and set(cryptoms_lib_files cnf.cpp propengine.cpp varreplacer.cpp ... ) I am fairly new to cmake, just bought "mastering cmake" a few days ago and reading and trying a lot, but still don't know how to debug this and where to start at all. Can someone give me a hint? Where is the correct place to store this *.lib and/or *.dll? Are there some which fail under Windows (with Visual Studio 2015) but work on Linux? Many thanks for helping! Best regards, Martin
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake