graphdeco-inria / gaussian-splatting

Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering"
https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/
Other
13.92k stars 1.8k forks source link

SIBR installation failed at linking texturedMesh_app #37

Closed antonzub99 closed 1 year ago

antonzub99 commented 1 year ago

Hey, thanks a lot for releasing the code for such an outstanding paper! Couldn't wait to try it out on my data.

Unfortunately, I bumped into this:

Environment

Anyway, maybe anyone has any idea how to fix the following problem during the compilation of SIBR?

[ 89%] Linking CXX executable SIBR_texturedMesh_app
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_set_do_overwrite_confirmation'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_main_iteration'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_widget_destroy'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_dialog_run'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_set_select_multiple'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_add_filter'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_filter_new'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_get_filenames'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_filter_add_pattern'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_init_check'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_filter_set_name'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_events_pending'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_dialog_new'
collect2: error: ld returned 1 exit status
make[2]: *** [src/projects/basic/apps/texturedMesh/CMakeFiles/SIBR_texturedMesh_app.dir/build.make:202: src/projects/basic/apps/texturedMesh/SIBR_texturedMesh_app] Error 1
make[1]: *** [CMakeFiles/Makefile2:1335: src/projects/basic/apps/texturedMesh/CMakeFiles/SIBR_texturedMesh_app.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

The thing is, I have libgtk3-dev correctly installed dpkg -l libgtk-3-dev

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name               Version            Architecture Description
+++-==================-==================-============-=====================================
ii  libgtk-3-dev:amd64 3.24.20-0ubuntu1.1 amd64        development files for the GTK library

and cmake also finds it during configuration:

-- Checking for module 'gtk+-3.0'
--   Found gtk+-3.0, version 3.24.20
Snosixtyboo commented 1 year ago

Hi,

sorry to hear that, I'm afraid I can't reproduce it... I have the same setup as you, only I use CMake 3.16, for me it just worked, maybe I can pick this up later. It's related to the File Dialog Picker, so if you can live without recording videos in SIBR, there might be a workaround.

antonzub99 commented 1 year ago

Ok thanks, at least now I'm sure that it should work in theory 😅 . I'll dig deeper into my software setup then.

nicolaihaeni commented 1 year ago

Did you find the reason for this issue? I am having the same issue..

antonzub99 commented 1 year ago

Did you find the reason for this issue? I am having the same issue..

Nope, I gave up on that and decided to try out the remote version of the viewer. Can't say it is comfortable (probably due to ssh connection), but at least it works

Snosixtyboo commented 1 year ago

Hi,

could you try building with

cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -Bbuild .
cmake --build build --target install

so we can see the exact command that fails?

antonzub99 commented 1 year ago

Verbose output is this:

[ 88%] Linking CXX executable SIBR_texturedMesh_app
cd /home/azub/projects/points/gaussian-splatting/SIBR_viewers/build/src/projects/basic/apps/texturedMesh && /home/azub/miniconda3/envs/gauss3d/lib/python3.8/site-packages/cmake/data/bin/cmake 
-E cmake_link_script CMakeFiles/SIBR_texturedMesh_app.dir/link.txt --verbose=1
/usr/bin/c++ CMakeFiles/SIBR_texturedMesh_app.dir/main.cpp.o -o SIBR_texturedMesh_app   
-L/usr/local/cuda-11.8/lib64  
-Wl,-rpath,"\$ORIGIN:/usr/local/cuda-11.8/lib64:/usr/local/lib" /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0 /usr/lib/x86_64-linux-gnu/libassimp.so /usr/lib/x86_64-linux-gnu/libGLEW.so /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libGLU.so 
../../renderer/libsibr_basic.so ../../../../core/renderer/libsibr_renderer.so ../../../../core/view/libsibr_view.so ../../../../core/video/libsibr_video.so /usr/lib/x86_64-linux-gnu/libavformat.so /usr/lib/x86_64-linux-gnu/libavdevice.so /usr/lib/x86_64-linux-gnu/libavcodec.so /usr/lib/x86_64-linux-gnu/libavutil.so /usr/lib/x86_64-linux-gnu/libswscale.so
 ../../../../core/scene/libsibr_scene.so ../../../../core/raycaster/libsibr_raycaster.so ../../../../core/assets/libsibr_assets.so /home/azub/projects/points/gaussian-splatting/SIBR_viewers/extlibs/xatlas/build/libxatlas.so.1.0 
../../../../core/graphics/libsibr_graphics.so /usr/lib/x86_64-linux-gnu/libassimp.so /usr/local/lib/libopencv_gapi.so.4.7.0 
/usr/local/lib/libopencv_stitching.so.4.7.0 /usr/local/lib/libopencv_alphamat.so.4.7.0 /usr/local/lib/libopencv_aruco.so.4.7.0 /usr/local/lib/libopencv_barcode.so.4.7.0 /usr/local/lib/libopencv_bgsegm.so.4.7.0 /usr/local/lib/libopencv_bioinspired.so.4.7.0 /usr/local/lib/libopencv_ccalib.so.4.7.0 /usr/local/lib/libopencv_cudabgsegm.so.4.7.0 
/usr/local/lib/libopencv_cudafeatures2d.so.4.7.0 /usr/local/lib/libopencv_cudaobjdetect.so.4.7.0 /usr/local/lib/libopencv_cudastereo.so.4.7.0 /usr/local/lib/libopencv_dnn_objdetect.so.4.7.0 
/usr/local/lib/libopencv_dnn_superres.so.4.7.0 /usr/local/lib/libopencv_dpm.so.4.7.0 /usr/local/lib/libopencv_face.so.4.7.0 /usr/local/lib/libopencv_fuzzy.so.4.7.0 /usr/local/lib/libopencv_hdf.so.4.7.0 /usr/local/lib/libopencv_hfs.so.4.7.0 /usr/local/lib/libopencv_img_hash.so.4.7.0 /usr/local/lib/libopencv_intensity_transform.so.4.7.0 
/usr/local/lib/libopencv_line_descriptor.so.4.7.0 /usr/local/lib/libopencv_mcc.so.4.7.0 /usr/local/lib/libopencv_quality.so.4.7.0 /usr/local/lib/libopencv_rapid.so.4.7.0 /usr/local/lib/libopencv_reg.so.4.7.0 /usr/local/lib/libopencv_rgbd.so.4.7.0 /usr/local/lib/libopencv_saliency.so.4.7.0 /usr/local/lib/libopencv_sfm.so.4.7.0 /usr/local/lib/libopencv_stereo.so.4.7.0 
/usr/local/lib/libopencv_structured_light.so.4.7.0 /usr/local/lib/libopencv_phase_unwrapping.so.4.7.0 /usr/local/lib/libopencv_superres.so.4.7.0 /usr/local/lib/libopencv_cudacodec.so.4.7.0 /usr/local/lib/libopencv_surface_matching.so.4.7.0 /usr/local/lib/libopencv_tracking.so.4.7.0 
/usr/local/lib/libopencv_highgui.so.4.7.0 /usr/local/lib/libopencv_datasets.so.4.7.0 /usr/local/lib/libopencv_plot.so.4.7.0 /usr/local/lib/libopencv_text.so.4.7.0 /usr/local/lib/libopencv_videostab.so.4.7.0 /usr/local/lib/libopencv_videoio.so.4.7.0 /usr/local/lib/libopencv_cudaoptflow.so.4.7.0 /usr/local/lib/libopencv_cudalegacy.so.4.7.0 
/usr/local/lib/libopencv_cudawarping.so.4.7.0 /usr/local/lib/libopencv_optflow.so.4.7.0 /usr/local/lib/libopencv_wechat_qrcode.so.4.7.0 /usr/local/lib/libopencv_xfeatures2d.so.4.7.0 /usr/local/lib/libopencv_ml.so.4.7.0 /usr/local/lib/libopencv_shape.so.4.7.0 /usr/local/lib/libopencv_ximgproc.so.4.7.0 /usr/local/lib/libopencv_video.so.4.7.0 
/usr/local/lib/libopencv_xobjdetect.so.4.7.0 /usr/local/lib/libopencv_imgcodecs.so.4.7.0 /usr/local/lib/libopencv_objdetect.so.4.7.0 /usr/local/lib/libopencv_calib3d.so.4.7.0 /usr/local/lib/libopencv_dnn.so.4.7.0 
/usr/local/lib/libopencv_features2d.so.4.7.0 /usr/local/lib/libopencv_flann.so.4.7.0 /usr/local/lib/libopencv_xphoto.so.4.7.0 /usr/local/lib/libopencv_photo.so.4.7.0 /usr/local/lib/libopencv_cudaimgproc.so.4.7.0 /usr/local/lib/libopencv_cudafilters.so.4.7.0 /usr/local/lib/libopencv_imgproc.so.4.7.0 /usr/local/lib/libopencv_cudaarithm.so.4.7.0 /usr/local/lib/libopencv_core.so.4.7.0 
/usr/local/lib/libopencv_cudev.so.4.7.0 /usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so /home/azub/projects/points/gaussian-splatting/SIBR_viewers/extlibs/imgui/build/libimgui.a /usr/lib/x86_64-linux-gnu/libGLEW.so /usr/lib/x86_64-linux-gnu/libOpenGL.so 
/usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/libglfw.so.3.3 -lrt -lm -ldl -lX11 -lpthread -lXrandr -lXinerama -lXxf86vm -lXcursor -lembree3 ../../../../core/system/libsibr_system.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0 
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0 /home/azub/projects/points/gaussian-splatting/SIBR_viewers/extlibs/nativefiledialog/build/libnativefiledialog.a 
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_main_iteration'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_set_select_multiple'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_filter_new'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_get_filenames'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_filter_add_pattern'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_events_pending'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_set_do_overwrite_confirmation'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_widget_destroy'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_dialog_run'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_add_filter'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_init_check'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_filter_set_name'
/usr/bin/ld: ../../../../core/system/libsibr_system.so: undefined reference to `gtk_file_chooser_dialog_new'
collect2: error: ld returned 1 exit status
make[2]: *** [src/projects/basic/apps/texturedMesh/CMakeFiles/SIBR_texturedMesh_app.dir/build.make:205: src/projects/basic/apps/texturedMesh/SIBR_texturedMesh_app] Error 1
make[2]: Leaving directory '/home/azub/projects/points/gaussian-splatting/SIBR_viewers/build'
make[1]: *** [CMakeFiles/Makefile2:1192: src/projects/basic/apps/texturedMesh/CMakeFiles/SIBR_texturedMesh_app.dir/all] Error 2
make[1]: Leaving directory '/home/azub/projects/points/gaussian-splatting/SIBR_viewers/build'
make: *** [Makefile:139: all] Error 2
Snosixtyboo commented 1 year ago

Hi,

I pushed some updates. Since I can't reproduce the error I'm not sure if it will help tho. If you want to try it

# if you are on fossa_compatibility
git pull
git submodule update
#
cd SIBR_viewers
rm -r -f extlibs
rm -r -f build
rm -r -f install
# if you use fossa_compatibility
git pull 
#
cmake -Bbuild .
cmake --build build --target install

Hth!

antonzub99 commented 1 year ago

Thanks, now sibr building is successful in my setup! Will close the issue