libatomprobe is a C++ library to help build atom probe software.
It contains data structures, file readers and algorithms which are useful
in processing the point data generated by atom probe tomography. Using
it, you can write C++ programs that use features within the library
To build this library, you need to have a compiler - the same one as
you use to build your program. You then need to "link" to it. Under
gcc/clang, this is achieved by passing "-latomprobe" during compilation
of your program, after installing the library.
We are really intrested to hear what you have done with this library,
and any feedback or additions that you may have made. Please contact
us on our forums to tell us what neat things you have done:
We are particularly excited to hear from anyone who might have new
modules to contribute
libatomprobe is distributed under the terms of the GNU General Public
Licence, version 3.0 or greater.
You may use this in your application, provided that if you distribute
your program, you make your program available under the same terms. These
terms are fully detailed in the COPYING file in this folder.
In summary, two important points are that you need to make the source code
for your program, and this library available to end users. End users must
also be free to similarly distribute the program You may not use technical
measures to prevent users from modifying or compiling the program.
You need to install the development libraries for these (usually *-dev or *-devel):
You need to install the following helper programs:
Compiling Under Linux
In the following the "#" is not part of the command. Do not type it in, or cut and paste it.
it simply shows which lines are commands.
-install the dependencies using this command as administrator (root):
# apt-get install libgsl-dev libqhull-dev libxml2-dev libiconv-dev g++ cmake
dnf install gsl-devel qhull-devel libxml2-devel libiconv-devel
After installing dependencies:
- In the folder, tell cmake to perform checks and set up the compile framework:
# cmake .
- Compile the library
- Install the library
# make install
Compiling Under OSX
We recommend using "MacPorts" to obtain the dependencies. First install
MacPorts, then install the dependencies like so:
sudo port install gsl qhull cmake gcc libxml2
Compiling Under Cygwin (For windows)
A windows version of the library can be compiled, to enable running
the program under windows.
Use cygwin (cygwin.com) to install the following libraries
You will also need these programs to compile the program
To compile, run :
This generates a .dll. You *must* either
install the library, or
have this in the library path (eg same folder) as the program you are trying to run
If you do not do this, the program will fail to load, due to a missing
As the libatomprobe library built this way depends on other cygwin
libraries, you *should* run any generated programs form the cygwin
Testing the built library
Tests are in the test folder, e.g.
you can run the unit tests with
This should provide some output and, ideally, not fail.
Debugging vs. Release
By default, the library is built in a debug mode, where extra checks are
performed at run time. This means the library runs slower, but you are
more likely to catch bugs in the usage of the library, and internally
within the library.
To build a "release" (non-debug) version (which is faster), use the
following cmake command:
cmake -DCMAKE_BUILD_TYPE=Release .
If you built the library in debug mode, you must also build your program
with the "DEBUG" define enabled, when using libatomprobe. If you fail
to do this, your program may experience random crashes whenever you use
code involving libatomprobe.
You can enable extra debugging with "ubsan", if using gcc >=4.9