エラーメッセージ

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls i18n_book_navigation_set_breadcrumb() (/home/sasaoj5/public_html/ms-cheminfo.com/sites/all/modules/i18n_book_navigation/i18n_book_navigation.module ファイル 212行).

RDKit クロスビルド

toolchain-rpi.cmake

ファイル toolchain-rpi.cmake を下記のように生成します。(同じファイルは、qtpltaz/linux/toolchain-rpi.cmake にあります)

 

SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)

SET(CMAKE_C_COMPILER   arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
SET(CMAKE_AR           arm-linux-gnueabihf-ar)
SET(CMAKE_LINKER       arm-linux-gnueabihf-ld)
SET(CMAKE_NM           arm-linux-gnueabihf-nm)
SET(CMAKE_OBJCOPY      arm-linux-gnueabihf-objcopy)
SET(CMAKE_OBJDUMP      arm-linux-gnueabihf-objdump)
SET(CMAKE_STRIP        arm-linux-gnueabihf-strip)
SET(CMAKE_RANLIB       arm-linux-gnueabihf-tanlib)

# where is the target environment 
SET(CMAKE_FIND_ROOT_PATH  /mnt/rootfs /nfs/local/pi)

# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

######
set(Boost_USE_STATIC_LIBS ON)
set(Boost_INCLUDE_DIR "/nfs/local/pi/boost-1_56/include")
set(Boost_LIBRARY_DIR "/nfs/local/pi/boost-1_56/lib")

 

rdkit ソースをリポジトリから取得します。

git clone git://github.com/rdkit/rdkit

 

rdkit ディレクトリの CMakeList.txt に以下の3行を追加します。

set(Boost_USE_STATIC_LIBS ON)
set(Boost_INCLUDE_DIR "/nfs/local/pi/boost-1_56/include")
set(Boost_LIBRARY_DIR "/nfs/local/pi/boost-1_56/lib")

また、以下の部分を変更します。

option(RDK_BUILD_PYTHON_WRAPPERS "build the standard python wrappers" OFF )
option(RDK_INSTALL_STATIC_LIBS "install the rdkit static libraries" OFF )

上記、2番目は、クロスコンパイルの際、スタティックライブラリの生成で libpthread が見つからないというエラーとなるためその生成をディスエブルしています。 

cmake を実行し、make コマンドにてコンパイル・インストールを行います。

export RDBASE=`pwd`
mkdir build
cd build/
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-rpi.cmake ..
make -j4
make install

最後の "make install" により、生成されたライブラリは rdkit/build/lib から rdkit/lib へコピーされます。


リファレンス

http://www.cmake.org/Wiki/CMake_Cross_Compiling

日本語

ユーザーログイン