Open3d: Не удается установить Open3D

Созданный на 26 июл. 2018  ·  3Комментарии  ·  Источник: intel-isl/Open3D

Опишите ошибку
Невозможно установить Open3D, следуя руководству, описанному здесь: http://open3d.org/docs/getting_started.html

Пробовал решение № 441, но не работает.

Не удалось создать файл [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

Использование pip для установки open3d также сообщает

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

Воспроизводить
Шаги по воспроизведению поведения:

Свежая сборка Open3D по руководству
git clone https://github.com/IntelVCL/Open3D
компакт-диск Open3D
./util/scripts/install-deps-ubuntu.sh
mkdir build
cd build
cmake ../src
make -j --------------------- [Сообщение об ошибке]

Рабочий стол (заполните следующую информацию):

  • ОС: [Ubuntu 16.04]

    • версия gcc: gcc (Ubuntu 4.9.4-2ubuntu1 ~ 16.04) 4.9.4

Дополнительный контекст
Добавьте сюда любой другой контекст проблемы.

possible bug question

Все 3 Комментарий

Привет, я думаю, что jsoncpp lib, уже установленная в вашей системе, конфликтует с кодами, связанными с jsoncpp, в Open3D. Обходной путь - собрать jsoncpp из исходного кода. Не могли бы вы попробовать следующее и поделиться своим опытом?

cmake -DBUILD_JSONCPP=ON ../src/

Спасибо, это помогает мне решить проблему.

Процедура

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

Спасибо @DKandrew! Закрытие этого вопроса.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

Prakash19921206 picture Prakash19921206  ·  4Комментарии

nrj127 picture nrj127  ·  4Комментарии

prerakmody picture prerakmody  ·  3Комментарии

taochenshh picture taochenshh  ·  3Комментарии

mike239x picture mike239x  ·  4Комментарии