isl-org / isl-org/Open3D

Cannot Compile on Ubuntu 18.04 Server via Headless Building Instructions

Open
#5,955 6 comments 0 reactions 0 assignees View on GitHub
build/install
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

### Checklist

- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (for `master` branch).

### Steps to reproduce the issue

I've downloaded the code from https://github.com/isl-org/Open3D/releases/tag/v0.16.0 .

Since I'm using a headless Ubuntu 18.04 server, I have to build the binary file on my own following the instructions here: http://www.open3d.org/docs/release/tutorial/visualization/headless_rendering.html .

The `makefile` seems generated well and no errors reported, but something goes wrong in the following step: `make -j$(nproc)`:

`Makefile:155: recipe for target 'all' failed`
`make: *** [all] Error 2`

I was using `CMake` from my `Anaconda` environment so firstly I supposed that it's a package-missing error, so I installed the corresponding packages in `Anaconda`: `Mesalib`, `Glew` and `Glfw` and retried command `make -j$(nproc)`. But the error still occurs. After several retries, I found that the error might because of the failed from building `assimp`(The total error message is shown below). And it seems that no similar former issues can help.

### Error message

```shell
In file included from /home/zhiyetang/data/Open3D-0.16.0/3rdparty/glew/src/glew.c:34:
/home/zhiyetang/data/Open3D-0.16.0/3rdparty/glew/include/GL/glew.h:1205:14: fatal error: GL/glu.h: No such file or directory
1205 | # include
| ^~~~~~~~~~
compilation terminated.
CMakeFiles/3rdparty_glew.dir/build.make:75: recipe for target 'CMakeFiles/3rdparty_glew.dir/3rdparty/glew/src/glew.c.o' failed
make[2]: *** [CMakeFiles/3rdparty_glew.dir/3rdparty/glew/src/glew.c.o] Error 1
CMakeFiles/Makefile2:1014: recipe for target 'CMakeFiles/3rdparty_glew.dir/all' failed
make[1]: *** [CMakeFiles/3rdparty_glew.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 29%] Built target ext_uvatlas
[ 30%] Built target ext_curl
[ 31%] Built target ext_libpng
[ 33%] Built target 3rdparty_qhull_r
[ 36%] Built target shader
[ 8%] Built target zlibstatic
Consolidate compiler generated dependencies of target assimp
[ 9%] Building CXX object code/CMakeFiles/assimp.dir/AssetLib/SMD/SMDLoader.cpp.o
[ 10%] Building CXX object code/CMakeFiles/assimp.dir/AssetLib/X3D/X3DImporter_Geometry2D.cpp.o
In file included from /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/x86_64-conda-linux-gnu/bits/c++allocator.h:33,
from /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/allocator.h:46,
from /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/string:41,
from /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/include/assimp/types.h:78,
from /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/X3D/X3DImporter_Node.hpp:51,
from /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/X3D/X3DImporter.hpp:44,
from /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/X3D/X3DImporter_Geometry2D.cpp:49:
In member function 'void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = aiVector3t; _Args = {const aiVector3t&}; _Tp = std::_List_node >]',
inlined from 'static void std::allocator_traits >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = aiVector3t; _Args = {const aiVector3t&}; _Tp = std::_List_node >]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/alloc_traits.h:516:17,
inlined from 'std::__cxx11::list<_Tp, _Alloc>::_Node* std::__cxx11::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const aiVector3t&}; _Tp = aiVector3t; _Alloc = std::allocator >]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/stl_list.h:713:33,
inlined from 'void std::__cxx11::list<_Tp, _Alloc>::_M_insert(iterator, _Args&& ...) [with _Args = {const aiVector3t&}; _Tp = aiVector3t; _Alloc = std::allocator >]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/stl_list.h:2005:32,
inlined from 'void std::__cxx11::list<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = aiVector3t; _Alloc = std::allocator >]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/stl_list.h:1306:24,
inlined from 'void Assimp::X3DImporter::readDisk2D(Assimp::XmlNode&)' at /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/X3D/X3DImporter_Geometry2D.cpp:277:28:
/home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/new_allocator.h:175:11: error: array subscript 'const aiVector3t[1]' is partly outside array bounds of 'std::__cxx11::list > [1]' [-Werror=array-bounds]
175 | { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/X3D/X3DImporter_Geometry2D.cpp: In member function 'void Assimp::X3DImporter::readDisk2D(Assimp::XmlNode&)':
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/X3D/X3DImporter_Geometry2D.cpp:239:40: note: at offset 16 into object 'tlist_i' of size 24
239 | std::list tlist_o, tlist_i;
| ^~~~~~~
In member function 'void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = aiVector3t; _Args = {const aiVector3t&}; _Tp = std::_List_node >]',
inlined from 'static void std::allocator_traits >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = aiVector3t; _Args = {const aiVector3t&}; _Tp = std::_List_node >]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/alloc_traits.h:516:17,
inlined from 'std::__cxx11::list<_Tp, _Alloc>::_Node* std::__cxx11::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const aiVector3t&}; _Tp = aiVector3t; _Alloc = std::allocator >]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/stl_list.h:713:33,
inlined from 'void std::__cxx11::list<_Tp, _Alloc>::_M_insert(iterator, _Args&& ...) [with _Args = {const aiVector3t&}; _Tp = aiVector3t; _Alloc = std::allocator >]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/stl_list.h:2005:32,
inlined from 'void std::__cxx11::list<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = aiVector3t; _Alloc = std::allocator >]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/stl_list.h:1306:24,
inlined from 'void Assimp::X3DImporter::readDisk2D(Assimp::XmlNode&)' at /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/X3D/X3DImporter_Geometry2D.cpp:278:28:
/home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/new_allocator.h:175:11: error: array subscript 'const aiVector3t[1]' is partly outside array bounds of 'std::__cxx11::list > [1]' [-Werror=array-bounds]
175 | { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/X3D/X3DImporter_Geometry2D.cpp: In member function 'void Assimp::X3DImporter::readDisk2D(Assimp::XmlNode&)':
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/X3D/X3DImporter_Geometry2D.cpp:239:31: note: at offset 16 into object 'tlist_o' of size 24
239 | std::list tlist_o, tlist_i;
| ^~~~~~~
cc1plus: all warnings being treated as errors
code/CMakeFiles/assimp.dir/build.make:2329: recipe for target 'code/CMakeFiles/assimp.dir/AssetLib/X3D/X3DImporter_Geometry2D.cpp.o' failed
make[5]: *** [code/CMakeFiles/assimp.dir/AssetLib/X3D/X3DImporter_Geometry2D.cpp.o] Error 1
make[5]: *** Waiting for unfinished jobs....
In file included from /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/vector:70,
from /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/include/assimp/DefaultLogger.hpp:57,
from /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/include/assimp/fast_atof.h:30,
from /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp:49:
In member function 'void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {unsigned int}; _Tp = unsigned int; _Alloc = std::allocator]',
inlined from 'void std::vector<_Tp, _Alloc>::push_back(value_type&&) [with _Tp = unsigned int; _Alloc = std::allocator]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/stl_vector.h:1294:21,
inlined from 'void Assimp::SMDImporter::CreateOutputMeshes()' at /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp:256:50:
/home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/vector.tcc:114:27: error: array subscript 4294967295 is outside array bounds of 'void [103079215088]' [-Werror=array-bounds]
114 | if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
| ~~~~~~~~~~~~~~^~~~~~~~~
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp: In member function 'void Assimp::SMDImporter::CreateOutputMeshes()':
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp:241:57: note: at offset 103079215088 into object of size [8, 103079215088] allocated by 'operator new []'
241 | FaceList* aaiFaces = new FaceList[pScene->mNumMeshes];
| ^
In member function 'void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {unsigned int}; _Tp = unsigned int; _Alloc = std::allocator]',
inlined from 'void std::vector<_Tp, _Alloc>::push_back(value_type&&) [with _Tp = unsigned int; _Alloc = std::allocator]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/stl_vector.h:1294:21,
inlined from 'void Assimp::SMDImporter::CreateOutputMeshes()' at /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp:256:50:
/home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/vector.tcc:114:54: error: array subscript 4294967295 is outside array bounds of 'void [103079215088]' [-Werror=array-bounds]
114 | if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp: In member function 'void Assimp::SMDImporter::CreateOutputMeshes()':
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp:241:57: note: at offset 103079215088 into object of size [8, 103079215088] allocated by 'operator new []'
241 | FaceList* aaiFaces = new FaceList[pScene->mNumMeshes];
| ^
In member function 'void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {unsigned int}; _Tp = unsigned int; _Alloc = std::allocator]',
inlined from 'void std::vector<_Tp, _Alloc>::push_back(value_type&&) [with _Tp = unsigned int; _Alloc = std::allocator]' at /home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/stl_vector.h:1294:21,
inlined from 'void Assimp::SMDImporter::CreateOutputMeshes()' at /home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp:256:50:
/home/zhiyetang/anaconda3/envs/6dof/x86_64-conda-linux-gnu/include/c++/12.2.0/bits/vector.tcc:119:13: error: array subscript 4294967295 is outside array bounds of 'void [103079215088]' [-Werror=array-bounds]
119 | ++this->_M_impl._M_finish;
| ^~
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp: In member function 'void Assimp::SMDImporter::CreateOutputMeshes()':
/home/zhiyetang/data/Open3D-0.16.0/build/assimp/src/ext_assimp/code/AssetLib/SMD/SMDLoader.cpp:241:57: note: at offset 103079215088 into object of size [8, 103079215088] allocated by 'operator new []'
241 | FaceList* aaiFaces = new FaceList[pScene->mNumMeshes];
| ^
cc1plus: all warnings being treated as errors
code/CMakeFiles/assimp.dir/build.make:2231: recipe for target 'code/CMakeFiles/assimp.dir/AssetLib/SMD/SMDLoader.cpp.o' failed
make[5]: *** [code/CMakeFiles/assimp.dir/AssetLib/SMD/SMDLoader.cpp.o] Error 1
CMakeFiles/Makefile2:168: recipe for target 'code/CMakeFiles/assimp.dir/all' failed
make[4]: *** [code/CMakeFiles/assimp.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make[3]: *** [all] Error 2
CMakeFiles/ext_assimp.dir/build.make:85: recipe for target 'assimp/src/ext_assimp-stamp/ext_assimp-build' failed
make[2]: *** [assimp/src/ext_assimp-stamp/ext_assimp-build] Error 2
CMakeFiles/Makefile2:936: recipe for target 'CMakeFiles/ext_assimp.dir/all' failed
make[1]: *** [CMakeFiles/ext_assimp.dir/all] Error 2
Makefile:155: recipe for target 'all' failed
make: *** [all] Error 2
```

### Open3D, Python and System information

```markdown
- Operating system: Ubuntu 18.04 Server
- Python version: Python 3.8.15
- Open3D version: Open3D 0.16.0
- System architecture: x86
- Is this a remote workstation?: yes
- How did you install Open3D?: build from source
- Compiler version (if built from source): conda-forge gcc 12.2.0-19
```

### Additional information

_No response_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.