-
Notifications
You must be signed in to change notification settings - Fork 45
DownloadAndInstallationFAQ
PageOutline ''Note: Make sure you have cmake 2.6.2 or greater and a compiler installed (gcc, Visual Studio 2005/2008, ...)''
= CISST Libraries = == On Linux ==
-
Prepare directories for ''cisst'' {{{ #!sh mkdir cisst cd cisst mkdir build mkdir source }}}
-
Do the following commands in the ''source'' directory to get the source tree from the ''cisst'' SVN repository {{{ #!sh svn co https://svn.lcsr.jhu.edu/cisst/trunk source }}}
-
Once you have downloaded everything into ''source'', use CMake to configure ''cisst'' in the build directory {{{ #!sh cd build ccmake ../source }}}
-
After creating the project using the CMake GUI, make the ''cisst'' library {{{ #!sh make }}}
== On MAC == === Using XCode on Mac OS X Leopard ===
''Note 1: Installation on Mac OS X Tiger should be similar.'[[BR]] ''Note 2: For cisstStereoVision only: If you plan to use '''OpenCV''', you need to install and compile '''OpenCV''' on your system following [http://opencvlibrary.sourceforge.net/Mac_OS_X_OpenCV_Port these instructions] before creating the project using '''CMake'''.'[[BR]] ''Note 3: For cisstStereoVision only: If you plan to use the svlImageWindow filter or other modules with '''X11''' dependency, you need to install the '''X11''' development package from the Mac OS X installation disks.'[[BR]] ''Note 4: You may use '''XCode''' for editing, compiling and debugging. However command line applications have to be executed from the '''Terminal''' because '''XCode''' does not open a command line for them by default. (Although there might be a way to force it somehow.)''
-
In the '''Terminal''', prepare directories for ''cisst'' {{{ #!sh mkdir cisst cd cisst mkdir build mkdir source cd source }}}
-
Do the following commands in the ''source'' directory to get the source tree from the ''cisst'' SVN repository {{{ #!sh svn co https://svn.lcsr.jhu.edu/cisst/trunk }}}
-
Once you have downloaded everything into ''source'', use '''CMake''' to configure ''cisst'' in the build directory {{{ #!sh cd ../build ccmake -G Xcode ../source }}}
-
Open the project in '''XCode''' by double clicking on ''cisst.xcodeproj'' in '''Finder'''.BR ''Note: When opening the project, '''XCode''' might ask for the directory to be used with the project. In that case just leave the default selection and continue.''
== On Windows ==
''Note1: You need to install [http://www.cmake.org/ CMake].''
-
Download and install [http://tortoisesvn.tigris.org/ Tortoise SVN]
-
Checkout cisst from https://svn.lcsr.jhu.edu/cisst/trunk
-
Once you have downloaded everything into source, use CMake to configure cisst in the build directory
- Run CMake.
- ''Where is the source code'': cisst source directory.
- ''Where to build the binaries'': custom build directory.
- Click ''Configure'' and turn ON the desired libraries; e.g.:
CISST_BUILD_cisstMultiTask = ON
CISST_BUILD_cisstNumerical = ON
CISST_BUILDcisstOSAbstraction = ON
CISST_BUILD_cisstParameterTypes = ON
CISST_HAS_CISSTNETLIB = ON
- Click ''Configure'' and set:
CISSTNETLIB_DIR = cisstNetlib directory
- Click ''Configure'' and click ''Generate''.
- Open ''cisst.sln'' under cisst build directory.
- Build ''ALL_BUILD'' in debug and release configurations.
= Optional External Dependencies =
The following external dependencies are optional. The cisst libraries can be compiled without them, but with less functionality.
== cisstNetLib ==
cisstNetLib is a customized binary distribution of some elements from the Netlib repository (which is Fortran code). The binary files can be downloaded and extracted [http://unittest.lcsr.jhu.edu/cisst/downloads/cisstNetlib here], though it is more convenient to use CMake to download it, as follows (assuming you have an Internet connection):
- Select the
BUILD_LIBS_cisstNumerical
option, then pressConfigure
- Two new CMake entries will appear:
CISSTNETLIB_DIR
andCISSTNETLIB_DOWNLOAD_NOW
- Select
CISSTNETLIB_DOWNLOAD_NOW
and pressConfigure
again - Depending on your OS, you may be prompted for additional information, such as 32 vs. 64 bits
- CMake will automatically download the cisstNetLib libraries to your build tree and set the paths
== ICE ==
=== Supported Platforms ===
- [http://zeroc.com/platforms_3_4_2.html Ice-3.4.2]
- [http://zeroc.com/platforms_3_4_1.html Ice-3.4.1]
- [http://zeroc.com/platforms_3_3_1.html Ice-3.3.1]
=== Installation === ==== General Guideline ====
- [http://www.zeroc.com/download.html Download] and install ZeroC's ICE.
- There are two ways to install ICE; One is to build ICE using source distribution and the other one is to use pre-built archives.
- If you choose the first method, you also need 3rd party packages.
- If you use pre-built packages, it should be the easiest and fastest way to install ICE. However, the binary distribution archive may not be available for your environment so you need to to check if ZeroC provides binary distribution archive for your environment (see [http://www.zeroc.com/platforms_3_3_1.html here]).
- Build cisst library with
CISST_MTS_HAS_ICE
option turned on.
==== Windows ==== The easiest and quickest installation method on Windows is to use .msi file.
==== Linux ==== Binary distribution can be installed through the package manager (e.g. apt-get on Ubuntu, yum on Fedora)
==== Mac OS X ====
Use port : sudo port install ice-cpp
- [http://doc.zeroc.com/display/Ice/Using+the+Mac+OS+X+Binary+Distribution Using Ice Mac OS X Binary Distribution]
=== IDE Setup === ==== Visual Studio 2008/2010 IDE ====
- http://www.zeroc.com/vsplugin.html The Ice Visual Studio Extension comes with Ice package installer and is automatically installed and activated if Visual Studio 2008 is found on the target machine.
- If you install Visual Studio 2008 or Visual Studio 2010 after installing Ice, you will have to re-run the Ice installer and choose "Repair" to install the extension.
- To activate the extension:
- Right-click on
cisstMultiTask
project in Solution Explorer and choose "Ice Configuration..." - Set options as follows: Image(IceExtensionSetup.png)
==== Visual C++ Express ====
- The Ice Visual Studio Extension is not available for Visual C++ Express and you need to configure Visual Studio manually (Microsoft does not allow plug-in extensions to run with Express editions of Visual Studio).
- Please follow the steps below:
- In the IDE, choose '''Tools->Options->Projects and Solutions->VC++ Directories'''
- Select '''Include files'''
- Add
<Ice installation root directory>\include
- Select '''Library files'''
- For x86 libraries add
<Ice installation root directory>\lib
- For x64 libraries add
<Ice installation root directory>\lib\x64
- Select '''Executable files'''
- For x86 binaries add
<Ice installation root directory>\bin
- For x64 binaries add
<Ice installation root directory>\bin\x64
=== Run-time Environment Setup === To use Ice for C++, there are two ways to set up the environment.
- Add the Ice
bin
directory to your PATH.
-
On x86 platforms: {{{ (command line prompt)> set PATH=\bin;%PATH% }}}
-
On x64 platforms: ''(Note: the
x64
directory must come first in your PATH)'' {{{ (command line prompt)> set PATH=\bin;%PATH% (command line prompt)> set PATH=\bin\x64;%PATH% }}} -
If you're using C++Builder: ''(Note: the
bcc10
directory must come first in your PATH)'' {{{ (command line prompt)> set PATH=\bin;%PATH% (command line prompt)> set PATH=\bin\bcc10;%PATH% }}}
- Copy necessary DLL files to the same folder as your executable
- For Ice-3.4.1
- Debug compilation:
bzip2d.dll
,ice.dll
,ice34d.dll
,iceutil34d.dll
- Release compilation:
bzip2.dll
,ice.dll
,ice34.dll
,iceutil34.dll
- For Ice-3.3.x
- Debug compilation:
bzip2d.dll
,ice.dll
,ice33d.dll
,iceutil33d.dll
- Release compilation:
bzip2.dll
,ice.dll
,ice33.dll
,iceutil33.dll
== Python ==
To wrap the cisst libraries for Python, the following steps are needed:
- Install Python on your system (Version 2.X, where X is >= 3). The cisst libraries have not been tested with Python 3.X.
- Install numpy, because the cisst mathematical types (e.g., fixed size and dynamic vectors and matrices) are mapped to numpy arrays.
- Install SWIG, which automatically wraps C++ code for Python (as well as other languages)
To use the Interactive Research Environment (IRE):
- Select the
CISST_BUILD_cisstInteractive
CMake option - Install wxPython or iPython
== XML ==
To use XML within cisst, you must turn ON the CISST_BUILD_cisstCommonXML
option in CMake. There are two options for XML support: libXML2 or Qt. CMake will attempt to find these packages on its own. If both are present, the default is to use libXML2. This can be changed in CMake by modifying the CISST_XML_LIB variable to be either !LibXml2 or QtXML.
Note, however, that to use the Qt XML, your code must have a QApplication
(i.e., it is not enough to just link with the Qt libraries). Also, if you are getting linker errors in external projects, be sure that cisstCommonXML
is added to your cisst_target_link_libraries
, i.e.:
cisst_target_link_libraries (yourProgram cisstCommon cisstCommonXML ....)
=== Windows ===
- Go to [http://www.zlatkovic.com/pub/libxml/] and download the zlib, libxml2, and iconv zipped folders. Extract these.
- Each folder has a lib, include, and bin subfolder. Put the contents of the lib, include, and bin files of the zlib and iconv into their respective places (subfolders of the same name) in the libxml2 folder. The end result should be that each folder within libxml2 should contain the following:
- bin
libxml2.dll
minigzip.exe
zlib1.dll
iconv.exe
iconv.dll
xmlcatalog.exe
xmllint.exe
- include
-
libxml
folder iconv.h
zconf.h
zlib.h
- lib
iconv_a.lib
zdll.lib
zlib.lib
iconv.lib
libxml2.lib
libxml2_a.lib
libxml2_a_dll.lib
- You can discard the original zlib and iconv folders, which should now be empty.
- Now that this is done, run cmake on your CISST folder and turn on CISST_HAS_XML, it will ask you the location of
xmllint.exe
, include, andlibxml2.lib
. - Remember to recompile CISST afterwards.
== FLTK == ''Note 1: The [http://www.fltk.org/articles.php?L825+I0+TFAQ+P1+Q stable version of FLTK] is 1.1.x.'[[BR]] ''Note 2: If you are using 64-bit OS, please see [https://trac.lcsr.jhu.edu/cisst/wiki/Compiling this guideline] for compiling FLTK on 64-bit machine.'[[BR]] ''Note 3: For information about writing cisst FLTK components, see [wiki:cisstFLTK this page].
=== Windows ===
- Download and extract [http://www.fltk.org/ FLTK 1.1.9].
- Run CMake.
- ''Where is the source code'': FLTK source directory.
- ''Where to build the binaries'': custom build directory.
- Click ''Configure''.
- Click ''Configure'' and click ''Generate''.
- Open ''FLTK.sln'' under FLTK build directory.
- Build ''ALL_BUILD'' in release configuration.
- Build ''INSTALL'' in release configuration (This places the libraries under Program Files/FLTK). == QT ==
Please refer to [http://qt.nokia.com/] for general installation instructions.
=== Windows ===
- Download Qt installer from [http://qt.nokia.com/downloads]
- Select "LGPL" version
- Select "Qt libraries 4.6 for Windows (VS 2008, 190 MB)"
- Install Qt
- Set the environment variables
- Add
<Qt_DIR>/bin
toPATH
(eg."C:/Qt/4.6.0/bin")
==== !PyQt (optional) ====
- Download SIP source from [http://www.riverbankcomputing.co.uk/software/sip/download]
- Extract the source to your favorite directory (
<PyQt_SOURCE_DIR>
) - Open Visual Studio Command Prompt
cd <PyQt_SOURCE_DIR>
python configure.py
nmake
nmake install
- Download !PyQt installer from [http://www.riverbankcomputing.co.uk/software/pyqt/download]
- Install !PyQt
=== Mac ===
- Open Terminal
- Make sure to install the correct versions!
sudo port install qt4-mac
-
sudo port install py26-pyqt4
(optional)
== VTK == === Windows ===
-
Download and install [http://www.cmake.org/ CMake 2.6.3].
-
Download and install vtk '''SOURCE''' [http://www.vtk.org/VTK/resources/software.html VTK source].
-
Start CMake, select visual studio 9 (or later) as the compiler.
- Where is the source code: select the directory where you unzipped the source (something like "vtk-5.4.2")
- Enter the director where to build the binaries, eg. vtk-5.4.2\build
- Turn on :
- BUILD_SHARED_LIBS: this causes the VTK dlls to be built
- Optional packages:
- VTK_USE_HYBRID: this causes vtkHybrid.lib/dll to be built
- VTK_USE_PATENTED: this causes vtkPatented.lib/dll to be built
- Click configure and then generate
- Open build directory, open the '''.sln''' file and compile ''ALL_BUILD'' in Release mode. (or debug)
- Right click on INSTALL project and Project Only->Build Only INSTALL.
- This should have installed VTK in the ''C:/Program Files/VTK/lib/vtk-5.4''
- Use the following option in CMake for including VTK in your projects:
- Remember to point CMake to the ''C:/Program Files/VTK/lib/vtk-5.4'' and not the directory where the source code of build related files are (this might be detected wrongly by CMake)
- first we have to find VTK, (make sure you add the dll path to the PATH variable)
{{{
FIND_PACKAGE(VTK QUIET)
INCLUDE_DIRECTORIES(
${VTK_INCLUDE_DIRS}) LINK_DIRECTORIES($ {VTK_LIBRARY_DIRS})
IF(NOT VTK_FOUND) message(FATAL_ERROR "VTK not found") ENDIF(NOT VTK_FOUND) }}}
- Then add desired libraries to the program {{{ TARGET_LINK_LIBRARIES(myprog vtkRendering vtkHybrid vtkGraphics vtkWidgets vtkVolumeRendering ) }}}
== uDrawGraph ==
The cisst libraries include a component viewer(mtsComponentViewer class in cisstMultiTask) that displays an interactive graphical visualization of the components in the system, whether a single process or distributed between different processes. This component viewer relies on the uDrawGraph package that can be obtained [http://www.informatik.uni-bremen.de/uDrawGraph/en/home.html here].
After installing it, be sure to add the binary directory to your path.
=== Linux ===
- Download LINUX package from [http://www.informatik.uni-bremen.de/uDrawGraph/en/download/download.html here]
- Extract uDraw: tar xfz uDrawGraph-3.1.1-0-linux-i386.tar.gz
- Copy to /usr/local/: sudo mv uDrawGraph-3.1 /usr/local/
- Add the binary directory to path and $UDG_HOME (add the following block to .bashrc file)
{{{
if [ -f /usr/local/uDrawGraph-3.1/README.txt ]; then
export UDG_HOME=/usr/local/uDrawGraph-3.1
export PATH=$PATH:/usr/local/uDrawGraph-3.1/bin
fi
}}}
== OpenIGTLink ==
== GLUT ==
The OpenGL Utility Toolkit (GLUT) is used by sawGLUTSimulator.
=== Windows ===
- Download and install GLUT [http://www.xmission.com/~nate/glut.html here]. For detailed installation process, please refer to README-win32.txt file (which is a bit dated) and/or the following:
- Copy '''glut32.dll''' to C:\Windows\System32 (on a 64-bit machine, this should be C:\Windows\SysWOW64).
- Copy '''glut.h''' to your C++ include directory; by convention this should be in a
GL
subdirectory - For Visual Studio 2008, this could be
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL
(create theGL
subdirectory if it does not exist, or put the file inC:\Program Files\Microsoft Visual Studio 9.0\VC\include
) - For Visual Studio 2003, this could be
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\gl
- Copy '''glut32.lib''' to your C++ library directory
- For Visual Studio 2008, this could be
C:\Program Files\Microsoft Visual Studio 9.0\VC\lib
- For Visual Studio 2003, this could be
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib
=== Linux ===
- Install the freeglut package
- On Fedora, "yum install glut-devel"
- On Ubuntu, "apt-get install freeglut3-dev"
== Hardware Drivers ==
=== Galil Motion Controller ===
- Download and install [http://www.galilmc.com/support/software-downloads.php GalilTools 1.3.0.0].
- Obtain and copy debug
.dll
and.lib
files to corresponding folders under Program Files.
=== National Instruments Data Acquisition (DAQ) Hardware ===
- Download and install [http://joule.ni.com/nidu/cds/view/p/id/1278/lang/en NI-DAQmx 9.0].
=== 3Dconnexion !SpaceNavigator 3D Mouse ===
- Download and install [http://www.3dconnexion.com/support/downloads.php SpaceNavigator SE].
== !CppUnit ==
=== The new way (automatic) ===
We now use CMake External Project to download and patch !CppUnit. This is convenient on computers that don't already have !CppUnit. For Linux and Mac OS, we still recommend to use the native package managers to install the development versions of !CppUnit (using apt-get
, port
, ...). On other computers (Windows mostly), you can now use the cisst CMake configuration option CISST_USE_EXTERNAL
. When CISST_USE_EXTERNAL
is turned on and you turn on the option to build the cisst unit tests (CISST_BUILD_TESTS
), !CppUnit sources will downloaded and compiled along cisst when you are building cisst. Please note that this requires a network connection for the first build.
=== The old way (manual) ===
The latest stable version of !CppUnit package is 1.12.1. There is a CMake patch available for cppunit, which can be obtained via the !Tracker/Patches link in the [http://sourceforge.net/projects/cppunit/ SourceForge cppunit page]. We have updated this patch and attached it here:
- [attachment:cppunit-CMakeLists.txt]: rename to
CMakeLists.txt
and place in root of cppunit source tree - [attachment:cppunit-config.h.cmake]: rename to
config.h.cmake
and place in the/config
subfolder in the cppunit source tree
Depending on the compiler (e.g., for MingW), it may also be necessary to patch the file TypeInfoHelper.cpp
, in the src/cppunit
subfolder, by adding the following line:
{{{ #include <malloc.h> }}}
This CMakeLists.txt
has been modified to build a static library, but can be edited to produce a dynamic library (e.g., DLL).
If !CppUnit 1.12.0 is built from source code and you're using Microsoft Visual Studio C++ 2008, there are probably compilation errors such as the following (this does not seem to occur with 1.12.1):
{{{ Compiling... MsDevCallerListCtrl.cpp .\MsDevCallerListCtrl.cpp(67) : error C3505: cannot load type library '{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}' .\MsDevCallerListCtrl.cpp(67) : fatal error C1104: fatal error importing libid: '80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2' }}}
This is because the !CppUnit 1.12.0 currently supports up to MSVS 7 of IDE for automation (see [http://cppunit.svn.sourceforge.net/viewvc/cppunit/trunk/cppunit/INSTALL-VS.Net2008.txt?view=markup this link]).
In order to fix this error, you need to patch line 67 of MsDevCallerListCtrl.cpp
as follows:
Before: {{{ #import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids }}}
After: {{{ #if (_MSC_VER < 1500) #import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids #else #import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("9.0") lcid("0") raw_interfaces_only named_guids #endif }}}
- Home
- Libraries & components
- Download
- Compile (FAQ)
- Reference manual
- cisstCommon
- cisstVector
- cisstNumerical
- cisstOSAbstraction
- TBD
- cisstMultiTask
- cisstRobot
- cisstStereoVision
- Developers