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):
Additional context
Add any other context about the problem here.
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.