Open3d: Cannot install the Open3D

Created on 26 Jul 2018  ·  3Comments  ·  Source: intel-isl/Open3D

Describe the bug
Cannot install the Open3D by following the tutorial described here: http://open3d.org/docs/getting_started.html

Tried the solution #441 but doesn't work.

Failed to make the file at [56%],

[  1%] Built target EncodeShader
[  1%] Built target ShaderFileTarget
[ 18%] Built target Visualization
[ 20%] Built target tinyfiledialogs
[ 41%] Built target Core
[ 53%] Built target IO
[ 54%] Built target Open3D
[ 55%] Built target ConvertPointCloud
[ 56%] Linking CXX executable ../bin/ManuallyCropGeometry
../lib/libOpen3D.a(PinholeCameraTrajectory.cpp.o): In function `three::PinholeCameraTrajectory::ConvertFromJsonValue(Json::Value const&)':
PinholeCameraTrajectory.cpp:(.text+0x306): undefined reference to `Json::Value::asString() const'
../lib/libOpen3D.a(FileJSON.cpp.o): In function `three::(anonymous namespace)::ReadIJsonConvertibleFromJSONStream(std::istream&, three::IJsonConvertible&)':
FileJSON.cpp:(.text+0x78): undefined reference to `Json::CharReaderBuilder::operator[](std::string)'
FileJSON.cpp:(.text+0xca): undefined reference to `Json::parseFromStream(Json::CharReader::Factory const&, std::istream&, Json::Value*, std::string*)'
../lib/libOpen3D.a(FileJSON.cpp.o): In function `three::(anonymous namespace)::WriteIJsonConvertibleToJSONStream(std::ostream&, three::IJsonConvertible const&)':
FileJSON.cpp:(.text+0x8ce): undefined reference to `Json::StreamWriterBuilder::operator[](std::string)'
FileJSON.cpp:(.text+0x930): undefined reference to `Json::StreamWriterBuilder::operator[](std::string)'
../lib/libOpen3D.a(SelectionPolygonVolume.cpp.o): In function `three::SelectionPolygonVolume::ConvertToJsonValue(Json::Value&) const':
SelectionPolygonVolume.cpp:(.text+0x183): undefined reference to `Json::Value::Value(std::string const&)'
../lib/libOpen3D.a(SelectionPolygonVolume.cpp.o): In function `three::SelectionPolygonVolume::ConvertFromJsonValue(Json::Value const&)':
SelectionPolygonVolume.cpp:(.text+0x30b): undefined reference to `Json::Value::asString() const'
SelectionPolygonVolume.cpp:(.text+0x3a3): undefined reference to `Json::Value::asString() const'
../lib/libOpen3D.a(RenderOption.cpp.o): In function `three::RenderOption::ConvertFromJsonValue(Json::Value const&)':
RenderOption.cpp:(.text+0x816): undefined reference to `Json::Value::asString() const'
../lib/libOpen3D.a(ViewTrajectory.cpp.o): In function `three::ViewTrajectory::ConvertFromJsonValue(Json::Value const&)':
ViewTrajectory.cpp:(.text+0x229b): undefined reference to `Json::Value::asString() const'
collect2: error: ld returned 1 exit status
Tools/CMakeFiles/ManuallyCropGeometry.dir/build.make:99: recipe for target 'bin/ManuallyCropGeometry' failed
make[2]: *** [bin/ManuallyCropGeometry] Error 1
CMakeFiles/Makefile2:392: recipe for target 'Tools/CMakeFiles/ManuallyCropGeometry.dir/all' failed
make[1]: *** [Tools/CMakeFiles/ManuallyCropGeometry.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Using pip to install the open3d also reports

Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import open3d
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "~/.local/lib/python3.6/site-packages/open3d/__init__.py", line 9, in <module>
    from open3d.linux import *
  File "~/.local/lib/python3.6/site-packages/open3d/linux/__init__.py", line 7, in <module>
    globals().update(importlib.import_module('open3d.linux.open3d').__dict__)
  File "~/miniconda3/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: ~/.local/lib/python3.6/site-packages/open3d/linux/open3d.so: undefined symbol: _Py_ZeroStruct

To Reproduce
Steps to reproduce the behavior:

Fresh build of Open3D by following the tutorial
git clone https://github.com/IntelVCL/Open3D
cd Open3D
./util/scripts/install-deps-ubuntu.sh
mkdir build
cd build
cmake ../src
make -j ---------------------[Error Reported]

Desktop (please complete the following information):

  • OS: [Ubuntu 16.04]

    • gcc version: gcc (Ubuntu 4.9.4-2ubuntu1~16.04) 4.9.4

Additional context
Add any other context about the problem here.

possible bug question

All 3 comments

Hi I think that jsoncpp lib already installed in your system is conflicting with the jsoncpp related codes in Open3D. The workaround is to build jsoncpp from source. Could you try the following and share your experience?

cmake -DBUILD_JSONCPP=ON ../src/

Thank you, it helps me solve the problem.

Procedure

cd ~/Open3D
sudo rm -rf build
mkdir build && cd build 
cmake -DBUILD_JSONCPP=ON ../src/
make -j ----[Passed]
sudo make install

Thanks @DKandrew! Closing this issue.

Was this page helpful?
0 / 5 - 0 ratings