Open Zumbalamambo opened 7 years ago
Looks like these libs
are not installed. Please install Boost, glog, gflags and lmdb.
Reference - http://caffe.berkeleyvision.org/install_apt.html
How do I install it in windows? windows does not have sudo apt
Did you use the windows branch? CMake should download prebuilt versions of these libs automatically.
yes the windows branch
it says something like following,
-- Could NOT find GFlags (missing: GFLAGS_INCLUDE_DIR GFLAGS_LIBRARY)
-- Could NOT find Glog (missing: GLOG_INCLUDE_DIR GLOG_LIBRARY)
-- Found PROTOBUF Compiler: C:/Program Files/Anaconda3/Library/bin/protoc.exe
CMake Error at C:/Program Files/CMake/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find LMDB (missing: LMDB_INCLUDE_DIR LMDB_LIBRARIES)
Call Stack (most recent call first):
I'm encountering this issue as well. After manually downloading Boost and adding a BOOST_ROOT environment variable, my output from running BUILD_WIN.cmd in powershell looks like this:
PS C:\caffe> .\scripts\build_win.cmd
The system cannot find the drive specified.
The system cannot find the drive specified.
INFO: ============================================================
INFO: Summary:
INFO: ============================================================
INFO: MSVC_VERSION = 14
INFO: WITH_NINJA = 1
INFO: CMAKE_GENERATOR = "Ninja"
INFO: CPU_ONLY = 0
INFO: CUDA_ARCH_NAME = Auto
INFO: CMAKE_CONFIG = Release
INFO: USE_NCCL = 0
INFO: CMAKE_BUILD_SHARED_LIBS = 0
INFO: PYTHON_VERSION = 2
INFO: BUILD_PYTHON = 1
INFO: BUILD_PYTHON_LAYER = 1
INFO: BUILD_MATLAB = 0
INFO: PYTHON_EXE = "python"
INFO: RUN_TESTS = 0
INFO: RUN_LINT = 0
INFO: RUN_INSTALL = 0
INFO: ============================================================
The system cannot find the path specified.
CMake Error at C:/Program Files/CMake/share/cmake-3.9/Modules/FindBoost.cmake:1879 (message):
Unable to find the requested Boost libraries.
Boost version: 1.64.0
Boost include path: C:/local/boost_1_64_0
Could not find the following Boost libraries:
boost_system
boost_thread
boost_filesystem
Some (but not all) of the required Boost libraries were found. You may
need to install these additional Boost libraries. Alternatively, set
BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT
to the location of Boost.
Call Stack (most recent call first):
cmake/Dependencies.cmake:8 (find_package)
CMakeLists.txt:80 (include)
-- Could NOT find GFlags (missing: GFLAGS_INCLUDE_DIR GFLAGS_LIBRARY)
-- Could NOT find Glog (missing: GLOG_INCLUDE_DIR GLOG_LIBRARY)
-- Found PROTOBUF Compiler: C:/Users/downes/Anaconda2/Library/bin/protoc.exe
CMake Error at C:/Program Files/CMake/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find LMDB (missing: LMDB_INCLUDE_DIR LMDB_LIBRARIES)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindLMDB.cmake:23 (find_package_handle_standard_args)
cmake/Dependencies.cmake:67 (find_package)
CMakeLists.txt:80 (include)
-- Configuring incomplete, errors occurred!
See also "C:/caffe/build/CMakeFiles/CMakeOutput.log".
See also "C:/caffe/build/CMakeFiles/CMakeError.log".
ERROR: Configure failed
The top of my CMakeOutput.log:
The system is: Windows - 10.0.15063 - AMD64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: C:/MinGW/bin/gcc.exe
Build flags:
Id flags:
Here's the whole thing: https://pastebin.com/gtmpGL7E
My CMakeError.log:
Determining if the include file pthread.h exists failed with the following output:
Change Dir: C:/caffe/build/CMakeFiles/CMakeTmp
Run Build Command:"C:/Users/downes/Anaconda2/Library/bin/ninja.exe" "cmTC_01445"
[1/2] Building C object CMakeFiles/cmTC_01445.dir/CheckIncludeFile.c.obj
FAILED: CMakeFiles/cmTC_01445.dir/CheckIncludeFile.c.obj
C:\MinGW\bin\gcc.exe -o CMakeFiles/cmTC_01445.dir/CheckIncludeFile.c.obj -c CheckIncludeFile.c
CheckIncludeFile.c:1:21: fatal error: pthread.h: No such file or directory
#include <pthread.h>
^
compilation terminated.
ninja: build stopped: subcommand failed.
caffe is not meant for windows it seems. everywhere it throws error while installing. tried for the past three weeks with no luck :(
It's proving rather problematic, yes. I manually added a reference to a copy of lmdb in my CMakeCache.txt:
//Path to a file.
LMDB_INCLUDE_DIR:PATH=C:/lmdb/lmdb/libraries/liblmdb
//Path to a library.
LMDB_LIBRARIES:FILEPATH=C:/lmdb/lmdb/libraries/liblmdb
This seems to have helped the build find it, moving it on to another error:
-- Found LMDB: C:/lmdb/lmdb/libraries/liblmdb
-- Found lmdb (include: C:/lmdb/lmdb/libraries/liblmdb, library: C:/lmdb/lmdb/libraries/liblmdb)
CMake Error at C:/Program Files/CMake/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find LevelDB (missing: LevelDB_INCLUDE LevelDB_LIBRARY)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindLevelDB.cmake:24 (find_package_handle_standard_args)
cmake/Dependencies.cmake:78 (find_package)
CMakeLists.txt:80 (include)
Not a good long term solution, and time consuming. If anyone could provide advice on where to start on debugging how build_win.cmd downloads and links it's dependencies, it would be much appreciated.
@Zumbalamambo do you know what C++ compiler you're trying to build with? The person who wrote this SO post experienced a similar error. They said their problem was CMake using gcc instead of the Visual C++ compiler.
I have g++ on my system, so I'm trying to figure out what mine is using now.
So it's right in the initial build output what compiler CMake finds, mine is using GCC/G++.
It's relatively simple to change the compiler that CMake uses: https://cmake.org/Wiki/CMake_FAQ#How_do_I_use_a_different_compiler.3F
I added
set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe")
set(CMAKE_CXX_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe")
to the top of CMakeLists.txt, which caused a new error:
-- The C compiler identification is MSVC 19.0.24210.0
-- The CXX compiler identification is MSVC 19.0.24210.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- broken
CMake Error at C:/Program Files/CMake/share/cmake-3.9/Modules/CMakeTestCCompiler.cmake:51 (message):
The C compiler "C:/Program Files (x86)/Microsoft Visual Studio
14.0/VC/bin/cl.exe" is not able to compile a simple test program.
It fails with the following output:
Change Dir: C:/caffe/build/CMakeFiles/CMakeTmp
Run Build Command:"C:/Users/downes/Anaconda2/Library/bin/ninja.exe"
"cmTC_09198"
[1/2] Building C object CMakeFiles\cmTC_09198.dir\testCCompiler.c.obj
[2/2] Linking C executable cmTC_09198.exe
FAILED: cmTC_09198.exe
cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_exe
--intdir=CMakeFiles\cmTC_09198.dir --manifests --
C:\PROGRA~2\MICROS~1.0\VC\bin\link.exe /nologo
CMakeFiles\cmTC_09198.dir\testCCompiler.c.obj /out:cmTC_09198.exe
/implib:cmTC_09198.lib /pdb:cmTC_09198.pdb /version:0.0 /machine:X86 /debug
/INCREMENTAL /subsystem:console kernel32.lib user32.lib gdi32.lib
winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib
advapi32.lib && cd ."
testCCompiler.c.obj : error LNK2001: unresolved external symbol
__RTC_InitBase
testCCompiler.c.obj : error LNK2001: unresolved external symbol
__RTC_Shutdown
LINK : error LNK2001: unresolved external symbol _mainCRTStartup
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\kernel32.lib
: warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\user32.lib :
warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\gdi32.lib :
warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\winspool.lib
: warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\shell32.lib
: warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\ole32.lib :
warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\oleaut32.lib
: warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\uuid.lib :
warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\comdlg32.lib
: warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\um\x64\advapi32.lib
: warning LNK4272: library machine type 'x64' conflicts with target machine
type 'X86'
C:\Program Files (x86)\Microsoft Visual Studio
14.0\VC\LIB\amd64\MSVCRTD.lib : warning LNK4272: library machine type 'x64'
conflicts with target machine type 'X86'
cmTC_09198.exe : fatal error LNK1120: 3 unresolved externals
LINK Pass 1 failed. with 1120
ninja: build stopped: subcommand failed.
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:20 (project)
I imagine there's a correct VS compiler to be using, and this is not it.
It's looking like the magic solution for me is to change WITH_NINJA to 0.
...I swear I tried that ages ago. I must have forgotten to remove my build folder or something foolish.
It seems to have successfully downloaded the libraries it needs, and took 11 minutes to build with 1352 warnings.
I have The VS14 version of cl.exe on my machine, but no installed copy of VS.
@skylarjhdownes
I added
set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe") set(CMAKE_CXX_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe")
Doing so will generate 32-bit code hence the warnings:
warning LNK4272: library machine type 'x64' conflicts with target machine type 'X86'
you need to use
set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe")
set(CMAKE_CXX_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe")
to generate 64-bit code.
Since building with ninja requires cl.exe to be on the PATH you would need only to set those variables to cl.exe
. Of course using the VS generator should work without messing with the CMAKE_C(XX)_COMPILER
variables.
@Zumbalamambo
How do I install it in windows? windows does not have sudo apt
I have some on going work on converting the dependencies to vcpkg a tool similar to apt get for windows.
I will keep you posted when this is working.
Thanks for the tips. Running with Ninja is still failing for me after pointing to the correct 64 bit compilers, though it is getting farther.
CMakeError.log:
Determining if the include file pthread.h exists failed with the following output:
Change Dir: C:/caffe_vanilla_2/build/CMakeFiles/CMakeTmp
Run Build Command:"C:/Users/downes/Anaconda2/Library/bin/ninja.exe" "cmTC_c4abd"
[1/2] Building C object CMakeFiles\cmTC_c4abd.dir\CheckIncludeFile.c.obj
FAILED: CMakeFiles/cmTC_c4abd.dir/CheckIncludeFile.c.obj
C:\PROGRA~2\MICROS~1.0\VC\bin\amd64\cl.exe /nologo /DWIN32 /D_WINDOWS /W3 /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\cmTC_c4abd.dir\CheckIncludeFile.c.obj /FdCMakeFiles\cmTC_c4abd.dir\ /FS -c CheckIncludeFile.c
CheckIncludeFile.c(1): fatal error C1083: Cannot open include file: 'pthread.h': No such file or directory
ninja: build stopped: subcommand failed.
Looks similar to issue #19. I'm still able to compile fine with the VS generator.
On the other hand, building with Ninja + VS14 and CMAKE_BUILD_SHARED_LIBS=1 completes with no errors. I wonder if it's breaking in the tests somehow, since the shared library build disables them?
I am getting the following error: (Caffe-GPU) C:\Users\DELL7810\Desktop\GargiSrivastava_16071009\Semester6\DeepLea rning\MarchTarget\Codes\LEGS\caffe>mkdir build1
(Caffe-GPU) C:\Users\DELL7810\Desktop\GargiSrivastava_16071009\Semester6\DeepLea rning\MarchTarget\Codes\LEGS\caffe>cd build1
(Caffe-GPU) C:\Users\DELL7810\Desktop\GargiSrivastava_16071009\Semester6\DeepLea rning\MarchTarget\Codes\LEGS\caffe\build1>cmake .. -- Building for: Visual Studio 15 2017 -- The C compiler identification is MSVC 19.16.27027.1 -- The CXX compiler identification is MSVC 19.16.27027.1 -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/ 2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/ 2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studi o/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studi o/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Warning (dev) at cmake/Targets.cmake:7 (if): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning.
Quoted variables like "MSVC" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. Call Stack (most recent call first): CMakeLists.txt:10 (include) This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Targets.cmake:9 (elseif): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning.
Quoted variables like "MSVC" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. Call Stack (most recent call first): CMakeLists.txt:10 (include) This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Misc.cmake:14 (if): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning.
Quoted variables like "MSVC" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. Call Stack (most recent call first): CMakeLists.txt:11 (include) This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at cmake/Misc.cmake:32 (set): implicitly converting 'BOOLEAN' to 'STRING' type. Call Stack (most recent call first): CMakeLists.txt:11 (include) This warning is for project developers. Use -Wno-dev to suppress it.
-- Looking for pthread.h -- Looking for pthread.h - not found -- Found Threads: TRUE CMake Error at C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/share/cmake-3. 14/Modules/FindBoost.cmake:2132 (message): Unable to find the requested Boost libraries.
Boost version: 1.67.0
Boost include path: C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/include
Could not find the following Boost libraries:
boost_system
boost_thread
Some (but not all) of the required Boost libraries were found. You may need to install these additional Boost libraries. Alternatively, set BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost. Call Stack (most recent call first): cmake/Dependencies.cmake:5 (find_package) CMakeLists.txt:24 (include)
-- Could NOT find GLOG (missing: GLOG_LIBRARY) -- Could NOT find GFLAGS (missing: GFLAGS_LIBRARY) -- Found Protobuf: C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/lib/libpro tobuf.lib (found version "3.5.1") -- Found PROTOBUF Compiler: C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/b in/protoc.exe -- Found HDF5: C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/lib/hdf5_cpp.l ib;C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/lib/hdf5.lib (found versio n "1.8.20") found components: HL -- Found LMDB: C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/include -- Found lmdb (include: C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/in clude, library: C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/lib/lmdb.lib)
CMake Error at C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/share/cmake-3. 14/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find LevelDB (missing: LevelDB_INCLUDE LevelDB_LIBRARY) Call Stack (most recent call first): C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/share/cmake-3.14/Modules/Fi ndPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE) cmake/Modules/FindLevelDB.cmake:18 (find_package_handle_standard_args) cmake/Dependencies.cmake:37 (find_package) CMakeLists.txt:24 (include)
-- Configuring incomplete, errors occurred! See also "C:/Users/DELL7810/Desktop/GargiSrivastava_16071009/Semester6/DeepLearn ing/MarchTarget/Codes/LEGS/caffe/build1/CMakeFiles/CMakeOutput.log". See also "C:/Users/DELL7810/Desktop/GargiSrivastava_16071009/Semester6/DeepLearn ing/MarchTarget/Codes/LEGS/caffe/build1/CMakeFiles/CMakeError.log".
Boost version 1.67.0 is already installed. What can be the problem? even glog, gflags, lmdb are also installed.
I installed the boost libraries from https://sourceforge.net/projects/boost/ and pasted the folder in C:/Users/DELL7810/Anaconda3/envs/Caffe-GPU/Library/include. Then compiled as cmake .. -G "Visual Studio 15 2017 Win64"
The main thing is to first identify what libraries it is searching with cmake .. -DBoost_DEBUG=ON. In my case it was searching for x32 libraries whereas I had X64 libraries.
i am getting error when configuring cmake
CMake Warning (dev) at cmake/Misc.cmake:32 (set): implicitly converting 'BOOLEAN' to 'STRING' type. Call Stack (most recent call first): CMakeLists.txt:33 (include) This warning is for project developers. Use -Wno-dev to suppress it.
Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE) (Required is at least version "2.7") CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:40 (message): Could not find url for MSVC version = 1900 and Python version = .. Call Stack (most recent call first): CMakeLists.txt:77 (include)
Configuring incomplete, errors occurred! See also "C:/Users/admin/Downloads/caffe-windows/caffe-windows/CMakeFiles/CMakeOutput.log".
How to solve the issue in Ubuntu?
Im unable to install it in my machine. Im getting the following error