00001 # GalilTools {#gcl}
00002
00003 To provide maximum compatibility, gclib ships with an open source wrapper implementation of the GCL
00004 (GalilTools Communication Library). Users wanting to upgrade to gclib that have source built on Galil.h
00005 can use this wrapper to minimize source changes. This wrapper is also indicated for users that want the
00006 same function calls as Galil.h, but don't want the usage of <a href="http://qt-project.org/">QT</a>
00007 as in galil1.dll.
00008
00009 **This wrapper is intended for existing applications already using the library distributed with GalilTools (galil1.dll)
00010 or the previous *STL* library (galil2.dll). New applications should be written with gclib.**
00011
00012 <!--- *********************************************************************************** -->
00013 ***
00014 ## Windows
00015 ***
00016 <!--- *********************************************************************************** -->
00017
00018 ###Compile galil2.dll with MSVC 2013
00019 The following instructions were performed on *Visual Studio Professional 2013* and can be extended to other Visual Studio versions.
00020 For brevity, the instructions assume the default installation location of **C:\\Program Files (x86)\\Galil\\gclib** and a build type of **x86 (win32)**.
00021
00022 ###Launch the compiler command prompt
00023
00024 * Open *VS2013 x86 Native Tools Command Prompt*.
00025 * Navigate to a convenient, writable location, e.g. *C:\\temp*.
00026
00027 ###Set an environment variable for the base path
00028
00029 C:\temp>set base=C:\Program Files (x86)\Galil\gclib
00030
00031 ###Compile the source code
00032 **Note the quotes.**
00033
00034 C:\temp>cl -c "%base%\source\wrappers\gcl\*.cpp" -I "%base%\include" -EHsc -MD
00035
00036 ###Link the source code
00037 **Note the quotes.**
00038
00039 C:\temp>link /DLL gcl_datarecord.obj gcl_galil.obj "%base%\lib\dynamic\x86\gclib.lib" "%base%\lib\dynamic\x86\gclibo.lib" /OUT:galil2.dll
00040
00041 The output files *galil2.dll* and *galil2.lib* can now be used in a project using the GCL.
00042
00043 ###Test
00044 Help the loader find the right dlls.
00045
00046 C:\temp>set PATH=%PATH%;%BASE%\dll\x86
00047
00048 Link the simple example.
00049
00050 C:\temp>link gcl_simple.obj "%base%\lib\dynamic\x86\gclib.lib" "%base%\lib\dynamic\x86\gclibo.lib" galil2.lib /OUT:simple.exe
00051
00052 Run the example.
00053
00054 C:\temp>simple.exe
00055 Galil2.dll wrapper, gclib 106.75.180
00056 10.1.3.169, DMC4020 Rev 1.2c, 291
00057
00058
00059 <!--- *********************************************************************************** -->
00060 ***
00061 ## Linux
00062 ***
00063 <!--- *********************************************************************************** -->
00064
00065 ###Copy files
00066
00067 $ tar -xzf /usr/share/doc/gclib/src/gclib_164_gcl.tar.gz
00068 $ ls
00069 Galil.h gcl_galil.cpp gcl_simple.cpp
00070 gcl_datarecord.cpp gcl_galil.h makefile
00071
00072 ###Make and install
00073
00074 $ make
00075 gcl open source wrapper for gclib
00076 Compiling wrapper, libgalil.so.2.0
00077 g++ -c -fPIC -std=c++11 gcl_datarecord.cpp gcl_galil.cpp
00078 Linking wrapper into shared library.
00079 g++ -shared -o libgalil.so.2.0 *.o -Wl,-soname=libgalil.so.2
00080 strip --strip-unneeded libgalil.so.2.0
00081 Cleaning up.
00082 $ sudo make install
00083 Installing libgalil.so.2.0
00084 install -m 755 libgalil.so.2.0 /usr/lib
00085 install -m 644 Galil.h /usr/lib
00086 ldconfig
00087 ln -s /usr/lib/libgalil.so.2 /usr/lib/libgalil.so
00088 $ make clean
00089 Cleaning project...
00090
00091 ###Test
00092
00093 $ g++ gcl_simple.cpp -lgalil -lgclib -lgclibo -o simple
00094 $ ./simple
00095 Galil2.dll wrapper, gclib 95.71.164
00096 10.1.3.169, DMC4020 Rev 1.2c, 291
00097
00098
00099
00100
00101
00102
00103
00104
00105