This code implements a sequence generation algorithm for robotic spatial printing, which is addressed in the following paper:
Yijiang Huang, Juyong Zhang, Xin Hu, Guoxian Song, Zhongyuan Liu, Lei Yu, Ligang Liu. FrameFab: Robotic Fabrication of Frame Shapes. ACM Trans. Graph. 35, 6, 2016.
This code has been tested in Windows (built with VS2013) and Ubuntu 14.04-LTS.
Clone Framefab from github
$ git clone https://github.com/yijiangh/FrameFab
Install git, cmake, Eigen, BLAS, LAPACK using your package manager. In Ubuntu, that's:
$ sudo apt-get install git cmake libeigen3-dev libblas-dev liblapack-dev
Mosek
PATH
environment variable to full path by adding export PATH=<MSKHOME>/mosek/8/tools/platform/linux64x86/bin:$PATH
, e.g. in ~/.bashrc
in Ubuntu machine (MSKHOME
denote the directory in which MOSEK is unpacked and installed. Version number 8
is the the current mosek version). Refer to official Installation doc.Qt5, OpenGL and GLUT
sudo apt-get install qt5-default qttools5-dev qttools5-dev-tools
$ sudo apt-get install freeglut3-dev
update and change CXX compiler
~\.bashrc
:CC=/usr/bin/gcc export CC CXX=/usr/bin/g++ export CXX
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test $ sudo apt-get update $ sudo apt-get install gcc-5 g++-5 $ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 1
Follow the usual CMake procedure:
$ cd Framefab $ mkdir build $ cd build $ cmake .. (/path/to/FrameFab) $ make -j4
$ ./framefab
The CXX compiler identification is unknown, no C++ compiler is found in cmake process. Make sure you have c++ compiler on your system. Run sudo apt-get install build-essential
, refer to this post.
Everything seems properly configured to fix previous cmake bugs, but why I still get the same error in Cmake? After an unsuccessful build, we must remove CMakeCache.txt (or simply clear the build directory); otherwise cmake will report the same error even if the needed package has been installed. (refer)
c++: error: unrecognized command line option ‘-std=c++14’ This happens when your current compiler (C++ in this case, or g++ version under 5.2) doesn't support -std=c++14. Look at this post for solution. You can specify another compiler using technique addressed in this post. Please remember don't set compiler in CMakeLists file but set your environment variables CC
and CXX
. In the test machine (Ubuntu), we add following lines in ~.bashrc
CC=/usr/bin/gcc
export CC
CXX=/usr/bin/g++
export CXX
By doing this, we change default CXX compiler from c++
to g++
, but default g++ compiler (version 4.8) doe not support -std=c++14. Thus, we have to install g++-5.4 (>5.2) and tell the system to refer to this new version whenever we run g++
. Refer to this post, we can upgrade and set new g++ by:
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install gcc-5 g++-5
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 1
You can check the update result by $ g++ --version
.
-std=c++14
is needed for GTEngine's successful compilation.
This code is implemented by Xin Hu, Yijiang Huang and Guoxian Song, supervised by Juyong Zhang and Ligang Liu, in 2016-17, @GCL USTC, and currently maintained by Yijiang Huang.