Code Monkey home page Code Monkey logo

drcutil's Introduction

This package provides a set of shell script to setup and maintain development environment for DRC.

Initial setup

First copy config.sh.sample.

% cp config.sh.sample config.sh

Edit contents of config.sh. ubuntu14.04LTS 64bit is highly recommended. Set HAVE_ATOM_ACCESS zero, if you don't have access to atom.

Fetch source codes.

% ./getsource.sh

Install required packages.

% ./setupenv.sh

Configure, build and install.

% ./install.sh

Daily development

update.sh fetches the latest source codes, builds and installs.

% ./update.sh

drcutil's People

Contributors

fkanehiro avatar jenkinshrg avatar yoneken avatar

Stargazers

 avatar

Watchers

 avatar

drcutil's Issues

Duplicate dependent packages in drcutil and mc_rtc installation scripts

This issue occurs when both drcutil and mc_rtc installation scripts are used.

For sch-core and state-observation, the each installation script will clone the same repository source in a different directory. This should be avoided, as it can easily lead to version inconsistencies (e.g., only sch-core installed with mc_rtc is updated, while sch-core installed with drcutil remains out of date).

The sch-core and state-observation are described in the dependencies of both scripts as follows.
Installation script of drcutil:

export PACKAGES="OpenRTM-aist openhrp3 pcl octomap hrpsys-base HRP2 HRP2KAI HRP5P sch-core state-observation hmc2 hrpsys-humanoid hrpsys-private hrpsys-state-observation choreonoid"

Installation script of mc_rtc:
https://github.com/jrl-umi3218/mc_rtc/blob/573b1718cdb75c281b1698d7b68ea6579e22af72/utils/build_and_install.sh#L946

No expression of "OPENHRP_3_1" of choreonoid when run "./update.sh"

I am trying to run the script "./update.sh" but encountered the following errors (choreonoid.log):

[ 1%] Built target pugixml
[ 2%] Built target cnoid-nameserver
[ 2%] Built target CnoidCorba
[ 3%] Built target CnoidOpenRTM
[ 3%] Built target symlink_to_model
[ 4%] Built target CnoidPyUtil
[ 14%] Built target CnoidUtil
[ 14%] Built target PyQtCore
[ 14%] Built target PyQtGui
[ 14%] Built target PyCorba
[ 14%] Built target doc
[ 15%] Building CXX object ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/OpenHRPControllerBase.cpp.o
:0:1: error: macro names must be identifiers
[ 20%] Built target CnoidAISTCollisionDetector
[ 20%] Built target CnoidAssimpSceneLoader
[ 20%] Building CXX object ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/corba/OpenHRP/3.1/OpenHRPCommonSk.cpp.o
:0:1: error: macro names must be identifiers
/home/yili/src/choreonoid/ext/openhrp-plugin/OpenHRPControllerBase.cpp:137:18: error: #elif with no expression
#elif OPENHRP_3_1
^
ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/build.make:345: recipe for target 'ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/corba/OpenHRP/3.1/OpenHRPCommonSk.cpp.o' failed
make[2]: *** [ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/corba/OpenHRP/3.1/OpenHRPCommonSk.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 30%] Built target CnoidBody
ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/build.make:332: recipe for target 'ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/OpenHRPControllerBase.cpp.o' failed
make[2]: *** [ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/OpenHRPControllerBase.cpp.o] Error 1
CMakeFiles/Makefile2:4900: recipe for target 'ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/all' failed
make[1]: *** [ext/openhrp-plugin/CMakeFiles/CnoidOpenHRP3.1.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 55%] Built target CnoidBase
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

Undefined reference error for liblapack.so when building openhrp3 in Ubuntu18.04

Problem

I proceeded installation according to README.md in drcutil for newly installed Ubuntu18.04, and
install.sh failed to build openhrp3 with following error:

      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_strscal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_sgemaxnrm' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_sscal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_ssqtrans' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zsqtrans' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_sgeset' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_sGetNB' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_sgemoveT' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_cGetNB' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_ctrscal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zgeru' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_cgemoveT' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_cgemaxnrm' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zcplxdivide' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zgemaxnrm' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dscal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_xerbla' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_cgezero' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dgezero' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dGetNB' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dgemaxnrm' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_cgeset' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zgezero' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dgeset' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_csqtrans' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zscal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_ccplxdivide' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_ccplxinvert' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dger' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zcplxinvert' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_cgeru' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zGetNB' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_sgescal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dtrscal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dgescal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_cscal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_ztrscal' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zgeset' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_sger' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_sgezero' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dsqtrans' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_dgemoveT' に対する定義されていない参照です
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/liblapack.so: `ATL_zgemoveT' に対する定義されていない参照です
      collect2: error: ld returned 1 exit status
      server/CollisionDetector/CMakeFiles/openhrp-collision-detector.dir/build.make:157: recipe for target 'bin/openhrp-collision-detector' failed
      make[2]: *** [bin/openhrp-collision-detector] Error 1
      CMakeFiles/Makefile2:920: recipe for target 'server/CollisionDetector/CMakeFiles/openhrp-collision-detector.dir/all' failed
      make[1]: *** [server/CollisionDetector/CMakeFiles/openhrp-collision-detector.dir/all] Error 2
      make[1]: *** 未完了のジョブを待っています....

This seems to be caused by the mismatch of the version in liblapack.so, but nobody except me in our lab suffers from this problem.

Workaround

I could avoid this problem by using liblapack.so from liblapack-dev instead of libatlas-dev.

        $ sudo update-alternatives --config liblapack.so-x86_64-linux-gnu
        alternative liblapack.so-x86_64-linux-gnu (/usr/lib/x86_64-linux-gnu/liblapack.so を提供) には 2 個の選択肢があります。

          選択肢    パス                                         優先度  状態
        ------------------------------------------------------------
        * 0            /usr/lib/x86_64-linux-gnu/atlas/liblapack.so    35        自動モード
          1            /usr/lib/x86_64-linux-gnu/atlas/liblapack.so    35        手動モード
          2            /usr/lib/x86_64-linux-gnu/lapack/liblapack.so   20        手動モード

        現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: 2
        update-alternatives: /usr/lib/x86_64-linux-gnu/liblapack.so (liblapack.so-x86_64-linux-gnu) を提供するためにマニュアルモードで /usr/lib/x86_64-linux-gnu/lapack/liblapack.so を使います

Environment

$ uname -a

Linux 5.4.0-67-generic #75~18.04.1-Ubuntu SMP Tue Feb 23 19:17:50 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

$ ls -lha /usr/lib/x86_64-linux-gnu/lapack/liblapack.so

lrwxrwxrwx 1 root root 18 11月 29  2017 /usr/lib/x86_64-linux-gnu/lapack/liblapack.so -> liblapack.so.3.7.1

$ ls -lha /usr/lib/x86_64-linux-gnu/atlas/liblapack.so

lrwxrwxrwx 1 root root 19  9月 14  2017 /usr/lib/x86_64-linux-gnu/atlas/liblapack.so -> liblapack.so.3.10.3

$ apt show libatlas-base-dev

Package: libatlas-base-dev
Version: 3.10.3-5
Built-Using: lapack (= 3.7.1-3ubuntu2)
Priority: optional
Section: universe/devel
Source: atlas
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Science Team <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 31.5 MB
Provides: libblas.so, liblapack.so
Depends: libatlas3-base (= 3.10.3-5)
Suggests: libatlas-doc, liblapack-doc
Conflicts: libcblas-dev
Breaks: libatlas-dev (<< 3.10.3-2), libblas-dev (<< 3.7.1-2~), liblapack-dev (<< 3.7.1-2~), libopenblas-dev (<< 0.2.20+ds-3~)
Replaces: libatlas-dev (<< 3.10.3-2), libcblas-dev
Homepage: http://math-atlas.sourceforge.net/
Supported: 3y
Download-Size: 4,022 kB
APT-Manual-Installed: yes
APT-Sources: http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
Description: Automatically Tuned Linear Algebra Software, generic static
 ATLAS は、数値ソフトウェアの自動生成および最適化に向けたアプローチです。 現在のところ ATLAS は、Basic Linear
 Algebra Subroutines (BLAS) として知 られている線形代数カーネルの完全セットと、LAPACK ライブラリの線形代数ルー
 チンのサブセットの最適化版を提供します。
 .
 This package includes the headers, the static libraries and symbolic links
 needed for program development.

$ apt show liblapack-dev

Package: liblapack-dev
Version: 3.7.1-4ubuntu1
Priority: optional
Section: devel
Source: lapack
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Science Team <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 12.0 MB
Provides: liblapack.so
Depends: liblapack3 (= 3.7.1-4ubuntu1), libblas-dev | libblas.so
Suggests: liblapack-doc
Breaks: libatlas-base-dev (<< 3.10.3-4~), libopenblas-dev (<< 0.2.20+ds-3~)
Homepage: http://www.netlib.org/lapack/
Supported: 5y
Download-Size: 2,140 kB
APT-Manual-Installed: yes
APT-Sources: http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Description: 線形代数ルーチンライブラリ 3 - 静的ライブラリ版
 LAPACK バージョン 3.X は線形代数演算を行う総合的な FORTRAN ライブラリで、
 この演算には逆行列計算、線形方程式の集合に対する最小二乗解、固有ベクトルの
 解析や特異値分解などが含まれます。これは非常に総合的で高い評価を受けている パッケージで、科学技術分野で広く利用されています。
 .
 This package contains a static version of the library.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.