Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build error. #6

Open
norouzzadeh opened this issue Sep 29, 2014 · 15 comments
Open

Build error. #6

norouzzadeh opened this issue Sep 29, 2014 · 15 comments

Comments

@norouzzadeh
Copy link

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
Copy link

heyglo commented May 12, 2015

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

@AlexMorgand
Copy link

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

@mobooya
Copy link

mobooya commented Jul 27, 2015

I had to do the same thing

@mobooya
Copy link

mobooya commented Jul 27, 2015

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
Copy link

mobooya commented Jul 27, 2015

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
Copy link

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
Copy link

mobooya commented Oct 22, 2015

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
Copy link

What is your operative system?

@mobooya
Copy link

mobooya commented Oct 22, 2015

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
#6 (comment)
.

@MicheleMola
Copy link

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

@MicheleMola
Copy link

I cannot solve.

@mobooya
Copy link

mobooya commented Oct 22, 2015

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
#6 (comment)
.

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
Copy link

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

@mobooya
Copy link

mobooya commented Oct 22, 2015

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

@HaiDang2001VN
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants