Open3d: Não é possível instalar o Open3D

Criado em 26 jul. 2018  ·  3Comentários  ·  Fonte: intel-isl/Open3D

Descreva o bug
Não é possível instalar o Open3D seguindo o tutorial descrito aqui: http://open3d.org/docs/getting_started.html

Tentei a solução # 441, mas não funcionou.

Falha ao fazer o arquivo em [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

Usar pip para instalar o open3d também relata

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

Reproduzir
Passos para reproduzir o comportamento:

Nova compilação do Open3D seguindo o tutorial
git clone https://github.com/IntelVCL/Open3D
cd Open3D
./util/scripts/install-deps-ubuntu.sh
construção mkdir
construção de cd
cmake ../src
make -j --------------------- [Erro relatado]

Desktop (preencha as seguintes informações):

  • SO: [Ubuntu 16.04]

    • versão gcc: gcc (Ubuntu 4.9.4-2ubuntu1 ~ 16.04) 4.9.4

Contexto adicional
Adicione qualquer outro contexto sobre o problema aqui.

possible bug question

Todos 3 comentários

Olá, acho que o jsoncpp lib já instalado em seu sistema está em conflito com os códigos relacionados ao jsoncpp no ​​Open3D. A solução alternativa é construir jsoncpp a partir da origem. Você poderia tentar o seguinte e compartilhar sua experiência?

cmake -DBUILD_JSONCPP=ON ../src/

Obrigado, isso me ajuda a resolver o problema.

Procedimento

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

Obrigado @DKandrew! Fechando esta questão.

Esta página foi útil?
0 / 5 - 0 avaliações