ObjCryst++ repackaged for installation as a system shared library.
ObjCryst++ is Object-Oriented Crystallographic Library for C++ developed by Vincent Favre-Nicolin. libobjcryst is a mirror of the ObjCryst++ sources from https://sourceforge.net/projects/objcryst, expanded with SCons build scripts to make it easier to install as a system shared library. libobjcryst does not include GUI related files from ObjCryst++. This distribution contains required sources from cctbx and newmat that are used in ObjCryst++.
For more information about the ObjCryst++ library, see the upstream project at http://objcryst.sourceforge.net. For Python bindings to ObjCryst++ see the pyobjcryst project at https://github.com/diffpy/pyobjcryst.
libobjcryst requires C++ compiler and the following software:
scons- software constructions tool (1.0 or later)libboost-dev- Boost C++ libraries development files
Required software is commonly available in the system package manager, for example, on Ubuntu Linux the dependencies can be installed as:
sudo apt-get install build-essential scons libboost-devlibobjcryst is also available as a pre-compiled package for Anaconda Python and it gets automatically installed together with pyobjcryst for Anaconda.
Use sources from the git repository or extract the latest libobjcryst bundle from https://github.com/diffpy/libobjcryst/releases/latest.
tar xzf libobjcryst-VERSION.tar.gz
cd libobjcryst-VERSIONTo build and install the libobjcryst library use
sudo scons -j4 installThis installs libobjcryst for all users under the /usr/local directory.
If administrator (root) access is not available, see the output from
scons --help for options to install to a user-writable location.
To verify libobjcryst installation, compile and run the included test code examples/testlib.cpp
cd examples
c++ testlib.cpp -lObjCryst
./a.outIf there is an error due to missing headers or missing libObjCryst
library, adjust the CPATH and LIBRARY_PATH environment variables or
use the -I and -L compiler options. If the libObjCryst shared library
cannot be found at runtime, add a -Wl,-rpath,SomePath option to the
c++ command or adjust the LD_LIBRARY_PATH environment variable.
The libobjcryst library is available in the "diffpy" channel of Anaconda packages
conda config --add channels diffpy
conda install libobjcrystlibobjcryst is also included in the "diffpy-cmi" collection of packages for structure analysis
conda install diffpy-cmiWhen compiling with the Anaconda version of libobjcryst it is essential to specify header path, library path and runtime path of the active Anaconda environment
# resolve prefix directory P of the active Anaconda environment
P="$(conda info --json | grep default_prefix | cut -d\" -f4)"
cd examples
c++ testlib.cpp -I$P/include -L$P/lib -Wl,-rpath,$P/lib -lObjCryst
./a.outNote the Anaconda version of libobjcryst is built with C++ compilers provided by Anaconda. This may cause incompatibility with system C++. In such case please use Anaconda C++ to link with libobjcryst.