dynamicfusion
dynamicfusion copied to clipboard
Error generating kfusion files
Hello, I've been trying to build this project but I'm facing some issue that I'm not sure how I could correct them, like:
[ 21%] Built target apidoc
Segmentation fault (core dumped)
Segmentation fault (core dumped)
Segmentation fault (core dumped)
CMake Error at kfusion_generated_tsdf_volume.cu.o.cmake:282 (message):
Error generating file
/home/vclab/dynamicfusion/build/kfusion/CMakeFiles/kfusion.dir/src/cuda/./kfusion_generated_tsdf_volume.cu.o
kfusion/CMakeFiles/kfusion.dir/build.make:989: recipe for target 'kfusion/CMakeFiles/kfusion.dir/src/cuda/kfusion_generated_tsdf_volume.cu.o' failed
make[2]: *** [kfusion/CMakeFiles/kfusion.dir/src/cuda/kfusion_generated_tsdf_volume.cu.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMake Error at kfusion_generated_proj_icp.cu.o.cmake:282 (message):
Error generating file
/home/vclab/dynamicfusion/build/kfusion/CMakeFiles/kfusion.dir/src/cuda/./kfusion_generated_proj_icp.cu.o
CMake Error at kfusion_generated_imgproc.cu.o.cmake:282 (message):
Error generating file
/home/vclab/dynamicfusion/build/kfusion/CMakeFiles/kfusion.dir/src/cuda/./kfusion_generated_imgproc.cu.o
kfusion/CMakeFiles/kfusion.dir/build.make:677: recipe for target 'kfusion/CMakeFiles/kfusion.dir/src/cuda/kfusion_generated_proj_icp.cu.o' failed
make[2]: *** [kfusion/CMakeFiles/kfusion.dir/src/cuda/kfusion_generated_proj_icp.cu.o] Error 1
kfusion/CMakeFiles/kfusion.dir/build.make:366: recipe for target 'kfusion/CMakeFiles/kfusion.dir/src/cuda/kfusion_generated_imgproc.cu.o' failed
make[2]: *** [kfusion/CMakeFiles/kfusion.dir/src/cuda/kfusion_generated_imgproc.cu.o] Error 1
CMakeFiles/Makefile2:154: recipe for target 'kfusion/CMakeFiles/kfusion.dir/all' failed
make[1]: *** [kfusion/CMakeFiles/kfusion.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
I installed Cuda 9.2, and even though I couldn't find the 375.66 nvidia drivers in 'additional drivers', If i remember well when I tried to update nvidia-375 it displayed that it was up to date as drivers version 396. I don't really know what to check now, I saw an old topic related to kinect lines in cmake to remove (https://github.com/mihaibujanca/dynamicfusion/issues/33) but I don't want to make any mistake so, if you have any idea why I can't build, it'd be a great help. Thank you
Hi, apologies for the delay.
What host compiler (and version) are you using?
Hi there,
I am facing the same issue: I am using Ubuntu 16.04.
/home/yaqub/dynamicfusion/kfusion/src/warp_field.cpp:157:13: error: ‘struct ceres::Solver::Options’ has no member named ‘num_linear_solver_threads’ options.num_linear_solver_threads = 8;
/home/yaqub/dynamicfusion/deps/Opt/examples/external/mLib/include/../src/core-math/triangleIntersection.cpp:497:50: warning: backslash and newline separated by space ADD(isectpoint0,diff,VTX0); \ ^ kfusion/CMakeFiles/kfusion.dir/build.make:107: recipe for target 'kfusion/CMakeFiles/kfusion.dir/src/warp_field.cpp.o' failed make[2]: *** [kfusion/CMakeFiles/kfusion.dir/src/warp_field.cpp.o] Error 1
/home/yaqub/dynamicfusion/kfusion/src/capture.cpp:105:49: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] sprintf ("%s, %s", license.strVendor, vendor); ^ CMakeFiles/Makefile2:85: recipe for target 'kfusion/CMakeFiles/kfusion.dir/all' failed make[1]: *** [kfusion/CMakeFiles/kfusion.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2
NVIDIA Driver Version: 396.26 CUDA Cores: 512 Graphics Processor: GeForce 940MX
In fact, everything goes well till the line before the last in build.sh (make -j4), where I get the errors that I mentioned above.
Commenting out 157th line in warp_field.cpp stops the error, but I don't think this is the solution for the error.
Hi @YJonmo,
Firstly, the two problems might generate the same error but are almost certainly unrelated.
Looks like it's coming from ceres, they have removed num_linear_solver_threads
: See this commit: https://github.com/ceres-solver/ceres-solver/commit/cfdc2af28b400a921d7465ab066656d5fafccc7a
I'll push a change soon, but all you need to do is replace num_linear_solver_threads
with num_threads_used
on that line. I might remove ceres as a dependency altogether in the future since CPU based optimisation will be way too slow anyway.
That being said, the project is in need of some serious cleanup and I wouldn't offer any guarantees that it will work in practice as of now.
I did what you said and still it gives error when running make -j4.
Thanks
Is it the same error though?
Pretty sure the one with num_linear_solver_threads
should be solved by the above
Sorry I might have done something wrong, but here is the details I did: in warp_field.cpp I replaced the num_linear_solver_threads with num_threads_used. Then in ~/dynamicfusion/build difrectory I ran cmake -DOpenCV_DIR=~/opencv/build -DBOOST_ROOT=~/boost_1_64_0/ -DOPENNI_INCLUDE_DIR=/usr/include/ni -DOpenCV_FOUND=TRUE .. make -j4
but I got: . . . .../dynamicfusion/kfusion/src/warp_field.cpp:158:10: error: ‘struct ceres::Solver::Options’ has no member named ‘num_threads_used’ options.num_threads_used = 8; . . .
My bad, apologies. It was just num_threads
, not num_threads_used
num_threads is already there, so commenting the num_threads_used should be the solution?
Yeah that should work.
@mihaibujanca haha, thanks man, I should read to the bottom