Open3d: Open3D๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

์— ๋งŒ๋“  2018๋…„ 07์›” 26์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: intel-isl/Open3D

๋ฒ„๊ทธ ์„ค๋ช…
http://open3d.org/docs/getting_started.html์— ์„ค๋ช… ๋œ ์ž์Šต์„œ๋ฅผ ๋”ฐ๋ผ Open3D๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜ # 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
cd Open3D
./util/scripts/install-deps-ubuntu.sh
mkdir ๋นŒ๋“œ
cd ๋นŒ๋“œ
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๊ฐ€ Open3D์˜ jsoncpp ๊ด€๋ จ ์ฝ”๋“œ์™€ ์ถฉ๋Œํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์†Œ์Šค์—์„œ 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 ๋“ฑ๊ธ‰