weigao95 / surfelwarp

SurfelWarp: Efficient Non-Volumetric Dynamic Reconstruction
https://sites.google.com/view/surfelwarp/home
BSD 3-Clause "New" or "Revised" License
276 stars 71 forks source link

make error: "Matrix3f" is undefined #17

Closed plutoyuxie closed 4 years ago

plutoyuxie commented 4 years ago

The error is related to Eigen I think, and I change the common_types.h by

include <external/eigen3.4/Eigen/Eigen>

but it still doesn't work. Hope for some help, thanks.

Logs:

[ 1%] Building NVCC (Device) object common/CMakeFiles/common_lib.dir/common_lib_generated_common_utils.cu.o /home/surfelwarp/common/common_types.h(25): error: identifier "Matrix3f" is undefined

/home/surfelwarp/common/common_types.h(25): error: expected a ";"

/home/surfelwarp/common/common_types.h(26): error: identifier "Vector3f" is undefined

/home/surfelwarp/common/common_types.h(26): error: expected a ";"

/home/surfelwarp/common/common_types.h(27): error: identifier "Matrix4f" is undefined

/home/surfelwarp/common/common_types.h(27): error: expected a ";"

/home/surfelwarp/common/common_types.h(28): error: identifier "Vector4f" is undefined

/home/surfelwarp/common/common_types.h(28): error: expected a ";"

/home/surfelwarp/common/common_types.h(29): error: identifier "Matrix6f" is undefined

/home/surfelwarp/common/common_types.h(29): error: expected a ";"

/home/surfelwarp/common/common_types.h(30): error: identifier "Vector6f" is undefined

/home/surfelwarp/common/common_types.h(30): error: expected a ";"

/home/surfelwarp/common/common_types.h(31): error: identifier "MatrixXf" is undefined

/home/surfelwarp/common/common_types.h(31): error: expected a ";"

/home/surfelwarp/common/common_types.h(32): error: identifier "VectorXf" is undefined

/home/surfelwarp/common/common_types.h(32): error: expected a ";"

/home/surfelwarp/common/common_types.h(33): error: identifier "Isometry3f" is undefined ......

JenningsL commented 4 years ago

Switching to gcc-7 solved this problem for me.

plutoyuxie commented 4 years ago

Switching to gcc-7 solved this problem for me.

Thanks a lot! @JenningsL This issue is solved and gcc-6 is suitable for me.

make is done but new error occurs when I run ./surfelwarp_app, logs as below: /3d/code/surfelwarp/core/render/Renderer.cpp:17: The graphic pipeline is not correctly initialized It is due to glfwInit() failure. I have no idea what happens. Hope for help again.

weigao95 commented 4 years ago

You can try a simpler GLFW applications, for instance this one on its website to see if you can call glfwInit correctly and create a window.

BTW, what's your GPU and driver version?

plutoyuxie commented 4 years ago

You can try a simpler GLFW applications, for instance this one on its website to see if you can call glfwInit correctly and create a window. BTW, what's your GPU and driver version?

Hi, thank you for the reply. I use 2080ti and cuda 10.
I have run the examples/simple test file in glfw, found the error caused by Error: GLX: GLX version 1.3 is required. Thanks. I will try to fix that problem.

Cartucho commented 4 years ago

I tried to compile this repo on two different computers and I get the same error.

Computer 1: NVIDIA 20800 ti, CUDA 10.2, Ubuntu 16.04 Computer 2: NVIDIA GEFORCE GTX 950M, Cuda 9.0, Ubuntu 16.04

Cartucho commented 4 years ago

If you are using CUDA 10, switching to gcc-7 like @JenningsL suggested indeed works.

Cartucho commented 3 years ago

As explained here, this will happen in Ubuntu due to the low version of c++ during compiling. You can solve it by flagging the compiler to C++11 (-std=c++11): https://github.com/weigao95/surfelwarp/blob/5e30876c97840f24ab736ea6e435619f79cc907d/CMakeLists.txt#L70

You can do that by uncommenting that line.