tum-vision / fastfusion

Volumetric 3D Mapping in Real-Time on a CPU
GNU General Public License v2.0
559 stars 173 forks source link

Build error. #6

Open norouzzadeh opened 9 years ago

norouzzadeh commented 9 years ago

cmake says: Did not find qglviewer2, linking qglviewer-qt4

While libqglviewer-qt4-2, libqglviewer-qt4-dev are installed. During the build the following error occurs:

./fastfusion-master/src/onlinefusionviewer.cpp: In member function ‘virtual void OnlineFusionViewerManipulated::init()’: ./fastfusion-master/src/onlinefusionviewer.cpp:463:55: error: invalid use of incomplete type ‘struct qglviewer::ManipulatedFrame’ /usr/include/QGLViewer/qglviewer.h:36:7: error: forward declaration of ‘struct qglviewer::ManipulatedFrame’ ./fastfusion-master/src/onlinefusionviewer.cpp: In member function ‘void OnlineFusionViewerManipulated::setScenePosition(CameraInfo)’: ./fastfusion-master/src/onlinefusionviewer.cpp:533:20: error: invalid use of incomplete type ‘struct qglviewer::ManipulatedFrame’ /usr/include/QGLViewer/qglviewer.h:36:7: error: forward declaration of ‘struct qglviewer::ManipulatedFrame’ ./fastfusion-master/src/onlinefusionviewer.cpp:534:20: error: invalid use of incomplete type ‘struct qglviewer::ManipulatedFrame’ /usr/include/QGLViewer/qglviewer.h:36:7: error: forward declaration of ‘struct qglviewer::ManipulatedFrame’ ./fastfusion-master/src/onlinefusionviewer.cpp: In member function ‘virtual void OnlineFusionViewerManipulated::draw()’: ./fastfusion-master/src/onlinefusionviewer.cpp:555:35: error: invalid use of incomplete type ‘struct qglviewer::ManipulatedFrame’ /usr/include/QGLViewer/qglviewer.h:36:7: error: forward declaration of ‘struct qglviewer::ManipulatedFrame’ ./fastfusion-master/src/onlinefusionviewer.cpp: In member function ‘virtual void OnlineFusionViewerManipulated::fastDraw()’: ./fastfusion-master/src/onlinefusionviewer.cpp:585:35: error: invalid use of incomplete type ‘struct qglviewer::ManipulatedFrame’ /usr/include/QGLViewer/qglviewer.h:36:7: error: forward declaration of ‘struct qglviewer::ManipulatedFrame’ make[2]: * [src/CMakeFiles/onlinefusion.dir/onlinefusionviewer.cpp.o] Error 1 make[1]: * [src/CMakeFiles/onlinefusion.dir/all] Error 2 make: *\ [all] Error 2

heyglo commented 9 years ago

had the same problem, but I'm using mingw. I solved the problem by including the header of ManipulatedFrame in the onlinefusionviewer.cpp

AlexMorgand commented 9 years ago

Hi heyglo, your suggestion worked for me on Ubuntu 14.04 Trusty by including QGLViewer/manipulatedFrame.h in the onlinefusionviewer.cpp

mobooya commented 9 years ago

I had to do the same thing

mobooya commented 9 years ago

did you get the meshcell size = 0 error? i see _meshCellsplit has 25,000 entries but then it tries to access _meshCells and crashes since its 0. another user, clonese1201, encountered this error #7 and i emailed him, he said he never resolved it.

mobooya commented 9 years ago

i fixed it by adding

undef MESHCELLINDICES_COMPACT

to definitions.h by doing that it enabled SWITCH_MESHCELLS_SPLIT which means _meshCells is pointing to _meshCellsSplit instead of _meshCellsCompact

MicheleMola commented 8 years ago

Hello, I had the same problem of norouzzadeh . I have included QGLViewer/manipulatedFrame.h in the onlinefusionviewer.cpp and now I have this problem:

[ 80%] Built target geometryfusion_aos Linking CXX executable ../bin/onlinefusion CMakeFiles/onlinefusion.dir/onlinefusionviewer.cpp.o: nella funzione "OnlineFusionViewerManipulated::init()": onlinefusionviewer.cpp:(.text+0x533): riferimento non definito a "qglviewer::Camera::setPosition(qglviewer::Vec const&)" onlinefusionviewer.cpp:(.text+0x571): riferimento non definito a "qglviewer::Camera::setFieldOfView(double)" CMakeFiles/onlinefusion.dir/onlinefusionviewer.cpp.o: nella funzione "OnlineFusionViewerManipulated::fastDraw()": onlinefusionviewer.cpp:(.text+0x909): riferimento non definito a "QGLViewer::drawAxis(double)" CMakeFiles/onlinefusion.dir/onlinefusionviewer.cpp.o: nella funzione "OnlineFusionViewerManipulated::setScenePosition(CameraInfo)": onlinefusionviewer.cpp:(.text+0x299a): riferimento non definito a "qglviewer::Frame::setPosition(double, double, double)" CMakeFiles/onlinefusion.dir/moc_onlinefusionviewer.cxx.o: nella funzione "QGLViewer::setSceneRadius(double)": moc_onlinefusionviewer.cxx:(.text._ZN9QGLViewer14setSceneRadiusEd[_ZN9QGLViewer14setSceneRadiusEd]+0x5): riferimento non definito a "qglviewer::Camera::setSceneRadius(double)" CMakeFiles/onlinefusion.dir/moc_onlinefusionviewer.cxx.o:(.rodata._ZTV29OnlineFusionViewerManipulated[ZTV29OnlineFusionViewerManipulated]+0xd0): riferimento non definito a "QGLViewer::keyReleaseEvent(QKeyEvent)" CMakeFiles/onlinefusion.dir/moc_onlinefusionviewer.cxx.o:(.rodata._ZTV29OnlineFusionViewerManipulated[_ZTV29OnlineFusionViewerManipulated]+0x230): riferimento non definito a "QGLViewer::drawLight(unsigned int, double) const" CMakeFiles/onlinefusion.dir/moc_onlinefusionviewer.cxx.o:(.rodata._ZTV29OnlineFusionViewerManipulated[_ZTV29OnlineFusionViewerManipulated]+0x2e8): riferimento non definito a "QGLViewer::setKeyFrameKey(unsigned int, int)" CMakeFiles/onlinefusion.dir/moc_onlinefusionviewer.cxx.o:(.rodata._ZTV29OnlineFusionViewerManipulated[_ZTV29OnlineFusionViewerManipulated]+0x2f0): riferimento non definito a "QGLViewer::setPlayKeyFramePathStateKey(unsigned int)" CMakeFiles/onlinefusion.dir/moc_onlinefusionviewer.cxx.o:(.rodata._ZTV29OnlineFusionViewerManipulated[_ZTV29OnlineFusionViewerManipulated]+0x2f8): riferimento non definito a "QGLViewer::setPlayPathStateKey(unsigned int)" CMakeFiles/onlinefusion.dir/moc_onlinefusionviewer.cxx.o:(.rodata._ZTV29OnlineFusionViewerManipulated[_ZTV29OnlineFusionViewerManipulated]+0x300): riferimento non definito a "QGLViewer::setAddKeyFrameStateKey(unsigned int)" CMakeFiles/onlinefusion.dir/moc_onlinefusionviewer.cxx.o:(.rodata._ZTV29OnlineFusionViewerManipulated[ZTV29OnlineFusionViewerManipulated]+0x308): riferimento non definito a "QGLViewer::setPathKey(int, unsigned int)" collect2: error: ld returned 1 exit status make[2]: ** [bin/onlinefusion] Errore 1 make[1]: * [src/CMakeFiles/onlinefusion.dir/all] Errore 2 make: * [all] Errore 2

Thank you.

mobooya commented 8 years ago

it looks like a linking error. 2 things to check: Check your project properties -Configuration Properties-Linker-General- additional library directories. Here is what I had:

C:\whereyoudownloaded\libQGLViewer-2.6.3\QGLViewer C:\whereyoudownloaded\libQGLViewer-2.6.3\QGLViewer\$(Configuration)

Check your project properties -Configuration Properties-Linker-Input-Additional Dependencies. Here is what I have:

C:\whereyoudownloaded\libQGLViewer-2.6.3\libQGLViewer-2.6.3\QGLViewer\QGLViewerd2.lib

MicheleMola commented 8 years ago

What is your operative system?

mobooya commented 8 years ago

windows 8.1, running visual studio 2010. also i had to build everything in 64bit mode

On Thu, Oct 22, 2015 at 9:32 AM MicheleMola notifications@github.com wrote:

What is your operative system?

— Reply to this email directly or view it on GitHub https://github.com/tum-vision/fastfusion/issues/6#issuecomment-150281608 .

MicheleMola commented 8 years ago

I am throwing this project with cmake, from terminal of Ubuntu. Thank you for your answer.

MicheleMola commented 8 years ago

I cannot solve.

mobooya commented 8 years ago

I also used cmake. let me attach some of the cmake files. but i set the build target for visual studio 2010 64bit. so not sure if that changes things. I labeld the cmake files with the name of the directory it resides in, since they normally all have the same name.

On Thu, Oct 22, 2015 at 11:50 AM MicheleMola notifications@github.com wrote:

I cannot solve.

— Reply to this email directly or view it on GitHub https://github.com/tum-vision/fastfusion/issues/6#issuecomment-150320810 .

cmake_minimum_required(VERSION 2.8)

set(OpenCV_LIBS opencv_core opencv_imgproc opencv_highgui opencv_calib3d)

set(CMAKE_BUILD_TYPE Release)

set(CMAKE_BUILD_TYPE RelWithDebInfo)

set(ROS_BUILD_TYPE RelWithDebInfo)

set(CMAKE_BUILD_TYPE Debug)

set(ROS_BUILD_TYPE Debug)

FIND_PACKAGE(Qt4 REQUIRED)

set(OpenCV_ARCH "x64")

set(OpenCV_INCLUDE_DIR "E:/opencv3.0/build/include") #BUILD OR SOURCE??

include_directories(${OpenCV_INCLUDE_DIR})

set(OpenCV_LIB_DIRS "E:/opencv3.0/build/lib/Debug" "E:/opencv3.0/build/lib/Release")

find_library(o

set (CMAKE_PREFIX_PATH "E:/opencv3.0/build")

message("cmake module path ${CMAKE_MODULE_PATH}")

message("cmake prefix path ${CMAKE_PREFIX_PATH}")

find_package(OpenCV REQUIRED COMPONENTS core imgproc highgui calib3d) if(OpenCV_FOUND) message(STATUS "OpenCV version ${OpenCV_VERSION} was found, Success!") message(STATUS " include ${OpenCV_INCLUDE_DIRS}") INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})

No Need to call link_directories, its handled automagically somehow, at least thats what opencvconfig.cmake says

#BULLSHIT it links the 32bit libraries. im gonna manually link this shit
LINK_DIRECTORIES("E:/opencv3.0/build/lib")
#message(STATUS "   lib dirs ${OpenCV_LIB_DIR}")
#message(STATUS "   libs ${OpenCV_LIBS}")
#message(STATUS "   cmake build type ${CMAKE_BUILD_TYPE}")
#message(STATUS "   arch ${OpenCV_ARCH}")

endif()

Mohamed - include boost

set(BOOST_ROOT "E:/boost_1_58_0/boost_1_58_0")

set(Boost_USE_STATIC_LIBS OFF)

set(Boost_USE_MULTITHREADED ON)

add_definitions( -DBOOST_ALL_NO_LIB )

set(BOOST_ROOT "E:/Users/Mohamed/Downloads/boost_1_47_0/boost_1_47_0")#"C:/Program Files (x86)/PCL 1.6.0/3rdParty/Boost")

Set the hints about the name of the libraries you want to find

set(BOOST_LIBRARYDIR "E:/Users/Mohamed/Downloads/boost_1_47_0/boost_1_47_0/libs") set(Boost_USE_STATIC_LIBS ON) #for better performance, takes up a little more memory but we are only added system and thread set(Boost_USE_MULTITHREADED ON) set(Boost_THREADAPI "win32") #Mohamed - telling it to use win32 threads not pthreads (this is fine for x64) find_package(Boost 1.47 EXACT REQUIRED COMPONENTS thread system) #1.47

find_package(Boost REQUIRED)

if(Boost_FOUND) message(STATUS "Boost was found, Success!") message(STATUS " include dirs: ${Boost_INCLUDE_DIRS}") message(STATUS " library dirs: ${Boost_LIBRARY_DIRS}") message(STATUS " libraries: ${Boost_LIBRARIES}") INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) endif()

Set my own cache variable that i can use in other libraries that need to pull in boost

set(Boost_INCLUDE_DIR ${Boost_INCLUDE_DIRS})

LIST(APPEND CMAKE_MODULE_PATH "E:/Intel/INDE/tbb_4.3.4/cmakeModule") #i downloaded a cmake module here

message("cmake module path ${CMAKE_MODULE_PATH}")

set(TBB_ROOT "E:/Intel/INDE/tbb_4.3.4") set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ON) find_package(TBB) if(NOT TBB_FOUND) MESSAGE(STATUS "TBB not found!") else(NOT TBB_FOUND) include_directories(${TBB_INCLUDE_DIRS}) link_directories(${TBB_LIBRARY_DIRS}) endif(NOT TBB_FOUND)

LIST(APPEND CMAKE_MODULE_PATH "E:/Intel/INDE/ipp_8.2.1.012/cmakeModule") #i downloaded a cmake module here set(IPP_ROOT "E:/Intel/INDE/ipp_8.2.1.012/Windows/x64/ipp") set(IPP_ARCH x64) find_package(IPP) if(NOT IPP_FOUND) MESSAGE(STATUS "IPP not found!") else(NOT IPP_FOUND) MESSAGE(STATUS "IPP was found, Success!") include_directories(${IPP_INCLUDE_DIRS}) link_directories(${IPP_LIBRARIES}) endif(NOT IPP_FOUND)

if (CMAKE_COMPILER_IS_GNUCC) execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) string(REGEX MATCHALL "[0-9]+" GCC_VERSION_COMPONENTS ${GCC_VERSION}) list(GET GCC_VERSION_COMPONENTS 0 GCC_MAJOR) list(GET GCC_VERSION_COMPONENTS 1 GCC_MINOR)

message(STATUS "GCC Major Version is " ${GCC_MAJOR})
message(STATUS "GCC Major Version is " ${GCC_MINOR})

endif()

set(CMAKE_C_FLAGS -frounding-math

-Wall

)

execute_process(COMMAND cat /proc/cpuinfo OUTPUT_VARIABLE CPU_INFO)

string(REGEX MATCHALL "avx2" AVX_STRING ${CPU_INFO})

list(LENGTH AVX_STRING AVX_STRING_LENGTH)

message(STATUS "AVX_STRING: " ${AVX_STRING})

message(STATUS "Number of avx2 occurrences in /proc/cpuinfo: " ${AVX_STRING_LENGTH})

set(AVX_STRING_LENGTH 0)

if(${AVX_STRING_LENGTH} GREATER 0)

message(STATUS "Compiling with AVX2 support")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -mavx2 -funroll-loops -DOWNAVX")

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -mavx2 -funroll-loops -DOWNAVX")

else()

message(STATUS "Compiling without AVX2 support")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -msse4.2 -funroll-loops")

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -msse4.2 -funroll-loops")

endif()

Mohamed Visual Studio 2010 -

enabling Intel Advanced Vector Extensions AVX (part 1).

AVX2 is in later visual studio builds i think

message(STATUS "Compiling without AVX/AVX2 support")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2 -DOWNAVX") #the flag OWNAVX is just for the ifdefs in the code, i think

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:AVX2 -DOWNAVX")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPRINT_DEBUG")

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPRINT_DEBUG")

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

include_directories(${PROJECT_SOURCE_DIR}/src) message(STATUS "PROJECT_SOURCE_DIR is " ${PROJECT_SOURCE_DIR}) include_directories(${PROJECT_SOURCE_DIR}/src/mohamed_util)

set(Boost_DEBUG 0)

set(BOOST_USE_STATIC_LIBS OFF)

set(BOOST_USE_MULTITHREADED ON)

set(BOOST_USE_STATIC_RUNTIME OFF)

set(Boost_THREADAPI win32) #Mohamed - telling it to use win32 threads not pthreads

find_package(Boost COMPONENTS thread system tr1)

include_directories(${Boost_INCLUDE_DIRS})

find_package(Eigen3 REQUIRED)

include_directories(EIGEN3_INCLUDE_DIR)

include_directories("/usr/include/eigen3")

!!!! EIGEN IS JUST HEADERS, WORKS WITH X86 or X64 !!

include_directories("C:/Program Files (x86)/PCL 1.6.0/3rdParty/Eigen/include") include_directories("E:/Users/Mohamed/Downloads/glew-1.12.0-win32/glew-1.12.0/include")

CUDA

set(CUDA_TOOLKIT_ROOT_DIR "/work/sdks/cudaversions/cuda50/")

find_package(CUDA 5.0 REQUIRED)

if(CUDA_FOUND)

message("Found CUDA")

else(CUDA_FOUND)

message("CUDA is not installed on this system.")

endif()

execute_process( COMMAND nvcc --version )

include_directories(${CUDA_TOOLKIT_ROOT_DIR}/include)

set(TEST_CUDA_ARCH $ENV{CUDA_ARCH})

if(TEST_CUDA_ARCH)

message(STATUS "The GPU Architecture is set to $ENV{CUDA_ARCH} in an Environment Variable")

set(CUDA_ARCH $ENV{CUDA_ARCH})

else(TEST_CUDA_ARCH)

message(STATUS "No GPU Architecture set, setting to sm_13")

set(CUDA_ARCH sm_11)

endif(TEST_CUDA_ARCH)

if(${CUDA_ARCH} matches sm_11)

set(CUDAARCHNUMBER 11)

elseif(${CUDA_ARCH} matches sm_13)

set(CUDAARCHNUMBER 13)

elseif(${CUDA_ARCH} matches sm_20)

set(CUDAARCHNUMBER 20)

endif(${CUDA_ARCH} matches sm_11)

set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -arch=${CUDA_ARCH})

include_directories(${PROJECT_SOURCE_DIR}/external)

include_directories(${PROJECT_SOURCE_DIR}/external/math)

include_directories(${PROJECT_SOURCE_DIR}/include)

include_directories(${PROJECT_SOURCE_DIR}/build/src)

include_directories("/usr/include/nvidia-current/cuda")

find_package(PCL 1.5 REQUIRED COMPONENTS common io filters)

include_directories(${PCL_INCLUDE_DIRS})

link_directories(${PCL_LIBRARY_DIRS})

add_definitions(${PCL_DEFINITIONS})

include(${QT_USE_FILE})

add_definitions(${QT_DEFINITIONS})

Doxygen integration

find_package(Doxygen) if(DOXYGEN_FOUND)

this adds the correct folder to INPUT= :

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)

add doc target

add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "generating docs with Doxygen" VERBATIM ) endif(DOXYGEN_FOUND)

add_subdirectory(src)

add_subdirectory(camerautils) add_subdirectory(auxiliary)

add_subdirectory(auxiliaryGPU)

add_subdirectory(libelas)

add_subdirectory(output)

add_subdirectory(fusion)

add_subdirectory(fusionGPU)

add_subdirectory(sophus)

add_subdirectory(filesystem)

add_subdirectory(mohamed_util)

include_directories(${PROJECT_SOURCE_DIR}/src/mohamed_util)

message("! ! SRC CMAKELIST")

Opengl, Glew (32bit and 64bit are both in here, dont mind the name of the version download)

set(GLEW_INCLUDE_DIR "E:/Users/Mohamed/Downloads/glew-1.12.0-win32/glew-1.12.0/include") include_directories(${GLEW_INCLUDE_DIR}) link_directories("E:/Users/Mohamed/Downloads/glew-1.12.0-win32/glew-1.12.0/lib/Release/x64") #Win32 for 32bit x86

Mohamed - include pthreads and set the path for the pthreads-win32 variable

find_package(Threads REQUIRED)

if (Threads_FOUND)

# message(STATUS "Threads was found, Success!")

endif()

ADD_DEFINITIONS(${QT_DEFINITIONS})

For building the GUI

THIS IS LINUX

if(EXISTS "${ROOT}/usr/lib/x86_64-linux-gnu/libQGLViewer.so")

message(STATUS "Found qglviewer2, linking QGLViewer")

set(QGLVIEWER QGLViewer)

else()

message(STATUS "Did not find qglviewer2, linking qglviewer-qt4")

set(QGLVIEWER qglviewer-qt4)

endif()

THIS IS WINDOWS

include_directories("E:/Users/Mohamed/Downloads/libQGLViewer-2.6.3/libQGLViewer-2.6.3")

include_directories("E:/Users/Mohamed/Downloads/libQGLViewer-2.6.3/libQGLViewer-2.6.3/QGLViewer")

set(QGLVIEWER QGLViewer2)

set(QGLVIEWER_ROOT "E:/Users/Mohamed/Downloads/libQGLViewer-2.6.3/libQGLViewer-2.6.3") LIST(APPEND CMAKE_MODULE_PATH ${QGLVIEWER_ROOT}) #i downloaded a cmake module here FIND_PACKAGE(QGLViewer) if(QGLVIEWER_FOUND) message(STATUS "QGLViewer was found, Success!")

message(STATUS "QGLVIEWER_INCLUDE_DIR: ${QGLVIEWER_INCLUDE_DIR}")

#message(STATUS "QGLVIEWER_LIBRARY_DIR: ${QGLVIEWER_LIBRARY_DIR}")
INCLUDE_DIRECTORIES(${QGLVIEWER_INCLUDE_DIR})
LINK_DIRECTORIES(${QGLVIEWER_LIBRARY_DIR})

endif()

add_executable(cameracalibration cameracalib_main.cpp)

target_link_libraries(cameracalibration

opencv_core opencv_imgproc opencv_highgui opencv_features2d opencv_calib3d

)

add_executable(rectify_known rectify_stereo_known_main.cpp)

target_link_libraries(rectify_known

opencv_core opencv_imgproc opencv_highgui opencv_features2d opencv_calib3d

)

include_directories("E:/Qt/4.8.0/include")

include_directories("E:/Qt/4.8.0/include/Qt")

include_directories("E:/Qt/4.8.0/include/QtCore")

include_directories("E:/Qt/4.8.0/include/QtXml")

include_directories("E:/Qt/4.8.0/include/QtGui")

include_directories("E:/Qt/4.8.0/include/QtOpenGL")

include_directories("E:/Qt/5.5.0/include") include_directories("E:/Qt/5.5.0/include/Qt") include_directories("E:/Qt/5.5.0/include/QtCore") include_directories("E:/Qt/5.5.0/include/QtXml") include_directories("E:/Qt/5.5.0/include/QtGui") include_directories("E:/Qt/5.5.0/include/QtOpenGL") link_directories("E:/Qt/5.5.0/lib")

Find the qt5 cmake configs

set (CMAKE_PREFIX_PATH "E:/Qt/qt-5.5.0-x64-msvc2010-rev0/qt-5.5.0-x64-msvc2010-rev0/")

Find includes in corresponding build directories

set(CMAKE_INCLUDE_CURRENT_DIR ON)

Instruct CMake to run moc automatically when needed.

set(CMAKE_AUTOMOC ON)

automatically add Qt5::WinMain to target_link_libraries (from Qt5Core)

cmake_policy(SET CMP0020 NEW) FIND_PACKAGE(Qt5 REQUIRED COMPONENTS Core Gui OpenGL Xml)

just gonna write my own find package and inline it here

set(QT5_LIBRARY_DIR "E:/Qt/5.5.0/lib")

find_library(QT5_CORE Qt5Core QT5_LIBRARY_DIR)

find_library(QT5_GUI Qt5Gui QT5_LIBRARY_DIR)

find_library(QT5_OPENGL Qt5OpenGL QT5_LIBRARY_DIR)

set(QT5_MODULES ${QT5_CORE} ${QT5_GUI} ${QT5_OPENGL})

QT5_WRAP_CPP(onlinefusion_HEADERS_MOC onlinefusionviewer.hpp) QT5_WRAP_CPP(sources $ {moc-sources}

OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED) if (Qt5_FOUND) message(STATUS "Found Qt5, Success!")

message("Include dir ${Qt5_INCLUDE_DIR}")

endif()

add_executable(onlinefusion onlinefusionviewer_main.cpp

onlinefusionviewer.hpp

${onlinefusion_HEADERS_MOC} onlinefusionviewer.cpp )

LINK_DIRECTORIES("E:/opencv3.0/build/lib")

target_link_libraries(onlinefusion

boost_thread

boost_system

${Boost_LIBRARIES} geometryfusion_mipmap_cpu geometryfusion_aos camerautils auxiliary

mohamed_util

${OpenCV_LIBS} ${QGLVIEWER_LIBRARIES} Qt5::Core Qt5::Gui Qt5::OpenGL Qt5::Xml glew32 opengl32

GL GLU glut GLEW

)

include_directories("/usr/include/nvidia-current/cuda")

include_directories("/work/sdks/cudaversions/cuda50/cuda/include")

include_directories("/home/steinbrf/sdks/cudaversions/cuda50/cuda/include")

find_package(Qt REQUIRED)

INCLUDE(${QT_USE_FILE})

include_directories("E:/Qt/4.8.0/include")

include_directories("E:/Qt/4.8.0/include/Qt")

include_directories("E:/Qt/4.8.0/include/QtCore")

include_directories("E:/Qt/4.8.0/include/QtXml")

include_directories("E:/Qt/4.8.0/include/QtGui")

include_directories("E:/Qt/4.8.0/include/QtOpenGL")

include_directories("E:/Qt/5.5.0/include") include_directories("E:/Qt/5.5.0/include/Qt") include_directories("E:/Qt/5.5.0/include/QtCore") include_directories("E:/Qt/5.5.0/include/QtXml") include_directories("E:/Qt/5.5.0/include/QtGui") include_directories("E:/Qt/5.5.0/include/QtOpenGL") ADD_DEFINITIONS(${QT_DEFINITIONS})

include_directories("..") include_directories(${PROJECT_SOURCE_DIR}/src/mohamed_util)

GLEW - OpenGL libraries

include_directories(${GLEW_INCLUDE_DIR})

Mohamed - including Boost and pthreads-win32

message("Including boost in the geometry fusion libraries: ${Boost_INCLUDE_DIR}") include_directories(${Boost_INCLUDE_DIR}) message("! ! GEOMETRY FUSION CMAKELIST") message(" - OpenCV_LIBS is ${OpenCV_LIBS}")

add_library(geometryfusion_aos STATIC geometryfusion_aos.cpp treeandbrick.cpp treeandbrick_indexed.cpp treeandbrick_incremental.cpp treeandbrick_incremental_recursive.cpp mesh.cpp

meshcelltraversal.cpp

mesh_interleaved.cpp mesh_interleaved_meshcell.cpp ) target_link_libraries(geometryfusion_aos

mohamed_util

${OpenCV_LIBS} ) add_library(geometryfusion_mipmap_cpu STATIC geometryfusion_mipmap_cpu.cpp loopclosure.cpp ) target_link_libraries(geometryfusion_mipmap_cpu

mohamed_util

)

MicheleMola commented 8 years ago

Yes, I have the CMakeLists.txt. But I have that problem, on Visual Studio are You able to run the project? Thank you.

mobooya commented 8 years ago

yes. what is your email address and we can do some 1:1 emails to stop spamming everyone else

HaiDang2001VN commented 6 years ago

Dear @mobooya , I want to compile the source code on Windows but those CMake files were written in Linux-style such I am not be able to generate. Could you please give me some hints about it, I am new with CMake. Thanks in advance.