Installing eViacam on Ubuntu 9.10 is Not Easy

General
Sean Moran
2010-02-02
2012-11-20
  • Sean Moran

    Sean Moran - 2010-02-02

    Dear Mr Mauri-Loba,

    I am trying to help a friend to install eViacam on Ubuntu
    9.10.  He has installed eViacam to Windows 7 and likes the
    software, but neither he nor I have had any success with
    ./configure after downloading the orig.tar.gz to the
    /usr/local directory.  I get the error message about
    gtk+-2.0 in the package list, and cannot install past that
    error.

    Please advise us if you can spare the time.  Sorry if I am overlooking
    something simple.

    Yours Faithfully,

    Sean Moran

    --o0o--

    Sean,

    Send your question through the Help forum  so the answer(s) would
    benefit other eViacam users. Try also to expand your explanation
    including the output of the ./configure script.

    References:
    https://sourceforge.net/projects/eviacam/forums/forum/898005

    Regards,

    César

    --o0o--

    sean@Lucy02:/usr/local/evirpm/eviacam-1.2$ ./configure
    checking for a BSD-compatible install… /usr/bin/install -c
    checking whether build environment is sane… yes
    checking for a thread-safe mkdir -p… /bin/mkdir -p
    checking for gawk… no
    checking for mawk… mawk
    checking whether make sets $(MAKE)… yes
    checking build system type… i686-pc-linux-gnu
    checking host system type… i686-pc-linux-gnu
    checking for style of include used by make… GNU
    checking for gcc… gcc
    checking for C compiler default output file name… a.out
    checking whether the C compiler works… yes
    checking whether we are cross compiling… no
    checking for suffix of executables…
    checking for suffix of object files… o
    checking whether we are using the GNU C compiler… yes
    checking whether gcc accepts -g… yes
    checking for gcc option to accept ISO C89… none needed
    checking dependency style of gcc… gcc3
    checking for a sed that does not truncate output… /bin/sed
    checking for grep that handles long lines and -e… /bin/grep
    checking for egrep… /bin/grep -E
    checking for ld used by gcc… /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld… yes
    checking for /usr/bin/ld option to reload object files… -r
    checking for BSD-compatible nm… /usr/bin/nm -B
    checking whether ln -s works… yes
    checking how to recognise dependent libraries… pass_all
    checking how to run the C preprocessor… gcc -E
    checking for ANSI C header files… yes
    checking for sys/types.h… yes
    checking for sys/stat.h… yes
    checking for stdlib.h… yes
    checking for string.h… yes
    checking for memory.h… yes
    checking for strings.h… yes
    checking for inttypes.h… yes
    checking for stdint.h… yes
    checking for unistd.h… yes
    checking dlfcn.h usability… yes
    checking dlfcn.h presence… yes
    checking for dlfcn.h… yes
    checking for g++… no
    checking for c++… no
    checking for gpp… no
    checking for aCC… no
    checking for CC… no
    checking for cxx… no
    checking for cc++… no
    checking for cl.exe… no
    checking for FCC… no
    checking for KCC… no
    checking for RCC… no
    checking for xlC_r… no
    checking for xlC… no
    checking whether we are using the GNU C++ compiler… no
    checking whether g++ accepts -g… no
    checking dependency style of g++… none
    checking for g77… no
    checking for xlf… no
    checking for f77… no
    checking for frt… no
    checking for pgf77… no
    checking for cf77… no
    checking for fort77… no
    checking for fl32… no
    checking for af77… no
    checking for xlf90… no
    checking for f90… no
    checking for pgf90… no
    checking for pghpf… no
    checking for epcf90… no
    checking for gfortran… no
    checking for g95… no
    checking for xlf95… no
    checking for f95… no
    checking for fort… no
    checking for ifort… no
    checking for ifc… no
    checking for efc… no
    checking for pgf95… no
    checking for lf95… no
    checking for ftn… no
    checking whether we are using the GNU Fortran 77 compiler… no
    checking whether  accepts -g… no
    checking the maximum length of command line arguments… 32768
    checking command to parse /usr/bin/nm -B output from gcc object… ok
    checking for objdir… .libs
    checking for ar… ar
    checking for ranlib… ranlib
    checking for strip… strip
    checking if gcc supports -fno-rtti -fno-exceptions… no
    checking for gcc option to produce PIC… -fPIC
    checking if gcc PIC flag -fPIC works… yes
    checking if gcc static flag -static works… yes
    checking if gcc supports -c -o file.o… yes
    checking whether the gcc linker (/usr/bin/ld) supports shared libraries… yes
    checking dynamic linker characteristics… GNU/Linux ld.so
    checking how to hardcode library paths into programs… immediate
    checking whether stripping libraries is possible… yes
    checking if libtool supports shared libraries… yes
    checking whether to build shared libraries… no
    checking whether to build static libraries… yes
    configure: creating libtool
    appending configuration tag "CXX" to libtool
    appending configuration tag "F77" to libtool
    checking for gcc… (cached) gcc
    checking whether we are using the GNU C compiler… (cached) yes
    checking whether gcc accepts -g… (cached) yes
    checking for gcc option to accept ISO C89… (cached) none needed
    checking dependency style of gcc… (cached) gcc3
    checking whether we are using the GNU C++ compiler… (cached) no
    checking whether g++ accepts -g… (cached) no
    checking dependency style of g++… (cached) none
    checking how to run the C preprocessor… gcc -E
    checking for gawk… (cached) mawk
    checking for a BSD-compatible install… /usr/bin/install -c
    checking whether ln -s works… yes
    checking whether make sets $(MAKE)… (cached) yes
    checking for a thread-safe mkdir -p… /bin/mkdir -p
    checking whether NLS is requested… yes
    checking for msgfmt… no
    checking for gmsgfmt… :
    checking for xgettext… no
    checking for msgmerge… no
    checking for ld used by GCC… /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld… yes
    checking for shared library run path origin… done
    checking for CFPreferencesCopyAppValue… no
    checking for CFLocaleCopyCurrent… no
    checking for GNU gettext in libc… yes
    checking whether to use NLS… yes
    checking where the gettext function comes from… libc
    checking for main in -lX11… yes
    checking for main in -lXext… yes
    checking for main in -lXtst… yes
    checking for pow… no
    checking for sqrt… no
    checking for X… libraries , headers
    checking for gethostbyname… yes
    checking for connect… yes
    checking for remove… yes
    checking for shmat… yes
    checking for IceConnectionNumber in -lICE… no
    checking gdk version… Package gtk+-2.0 was not found in the pkg-config search path.
    Perhaps you should add the directory containing `gtk+-2.0.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'gtk+-2.0' found
    not found
    configure: error: gtk+-2.0 is required.

    See Also: http://ubuntuforums.org/showthread.php?p=8756938#post8756938

     
  • Cesar Mauri-Loba

    I've successfully compiled and run eViacam on an almost clean Ubuntu 9.10 (karmic) x86_64. The problem was that you hadn't installed the required development libraries. Unfortunately, there is no easy way to generate executables for all Linux flavours and so sometimes a "manual" compilation is required (which is usually somewhat painful).

    First of all install the required libraries. Run the following commands:

    sudo apt-get install libxext-dev
    sudo apt-get install libxtst-dev
    sudo apt-get install libgtk2.0-dev
    sudo apt-get install libwxbase2.8-dev
    sudo apt-get install libwxgtk2.8-dev
    sudo apt-get install libhighgui-dev
    sudo apt-get install libswscale-dev

    Then, you need to modify two files to correct a bug (the fix will be included in the next release):

    creavision/crvcamera_cv.cpp
    creavision/crvcamera_cv.h

    Change g_deviceNames; by g_deviceNames;

    Check this post for further details:
    https://sourceforge.net/projects/eviacam/forums/forum/898005/topic/3522717

    Then:

    ./configure
    make

    If this works properly you may want to generate a .deb package:

    make deb

    Install it:

    sudo dpkg -i debian-build/eviacam_1.2_amd64.deb

    Run from the applications menu. Enjoy.

    The only drawback is that there are some issues with the Click Window.

     
  • Sean Moran

    Sean Moran - 2010-02-03

    Thank you for the prompt help.  The apt-get for those libraries fixed up the gtk+-2.0 error and ./configure ran through, as far as I can gather.  There were a few errors encountered running 'make' though.

    I've adjusted the  to  and the software is in /usr/local/eviacam-1.2/ which is where I ran ./configure and make.  I will add the output from the make command below. 

    My friend has also asked me to enquire of any other Linux distributions that you know of that eViacam runs smoothly with, if perhaps Ubuntu is not quite up to the mark?

    Here is the output from make:

    sean@Lucy02:/usr/local/eviacam-1.2$ make
    make  all-recursive
    make: Entering directory `/usr/local/eviacam-1.2'
    Making all in creavision
    make: Entering directory `/usr/local/eviacam-1.2/creavision'
    make: Nothing to be done for `all'.
    make: Leaving directory `/usr/local/eviacam-1.2/creavision'
    Making all in wxutil
    make: Entering directory `/usr/local/eviacam-1.2/wxutil'
    /bin/bash ../libtool -tag=CXX   -mode=compile g++ -DHAVE_CONFIG_H -I. -I..   -Wall -fexceptions -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -I/usr/include/opencv    -DNDEBUG  -g -O2 -Wall -fexceptions -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -I/usr/include/opencv    -DNDEBUG -MT wxappbar.lo -MD -MP -MF .deps/wxappbar.Tpo -c -o wxappbar.lo wxappbar.cpp
    g++ -DHAVE_CONFIG_H -I. -I.. -Wall -fexceptions -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -I/usr/include/opencv -DNDEBUG -g -O2 -Wall -fexceptions -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -I/usr/include/opencv -DNDEBUG -MT wxappbar.lo -MD -MP -MF .deps/wxappbar.Tpo -c wxappbar.cpp -o wxappbar.o
    wxappbar.cpp:40:22: error: gdk/gdkx.h: No such file or directory
    wxappbar.cpp:41:27: error: gtk/gtkwidget.h: No such file or directory
    wxappbar.cpp: In member function 'virtual bool WXAppBar::Show(bool)':
    wxappbar.cpp:410: error: invalid use of incomplete type 'struct _GtkWidget'
    /usr/include/wx-2.8/wx/defs.h:2809: error: forward declaration of 'struct _GtkWidget'
    wxappbar.cpp:410: error: 'GDK_WINDOW_XWINDOW' was not declared in this scope
    wxappbar.cpp:504: error: invalid use of incomplete type 'struct _GtkWidget'
    /usr/include/wx-2.8/wx/defs.h:2809: error: forward declaration of 'struct _GtkWidget'
    wxappbar.cpp:504: error: 'GDK_WINDOW_XWINDOW' was not declared in this scope
    make: ***  Error 1
    make: Leaving directory `/usr/local/eviacam-1.2/wxutil'
    make: ***  Error 1
    make: Leaving directory `/usr/local/eviacam-1.2'
    make: ***  Error 2

    Sorry to be such an ignoramus on these no doubt minor problems.

     
  • Cesar Mauri-Loba

    According to the first error:

        wxappbar.cpp:40:22: error: gdk/gdkx.h: No such file or directory

    there is a missing header file.

    To see which package provides such file you can use the Ubuntu Package Search . For this file it seems that there are two suitable packages : libgtk2.0-dev and lsb-build-desktop3. As far as in my system I only have the first one, the second one is not needed (you can install it anyway). So, ensure that the package libgtk2.0-dev is actually installed in your system and that the file "/usr/include/gtk-2.0/gdk/gdkx.h" exists.

    I would also suggest to avoid compiling the source on a privileged directory (i.e. /usr/local) as you may need root permissions. Instead of that unpack a fresh copy of the sources (don't copy from /usr/local) in your home directory and repeat the compilation steps as a regular user.

    Finally, regarding your question, I believe that any (quite) modern Linux distribution is appropriate to run eViacam on. Personally, I use debian to develop and test eViacam. As far as Ubuntu is based on debian I think that this is a good option :-)

    References:
    http://packages.ubuntu.com/
    http://packages.ubuntu.com/search?searchon=contents&keywords=gdkx.h&mode=filename&suite=karmic&arch=any

     
  • Vitaly Perov

    Vitaly Perov - 2011-01-20

    For Mandriva x64 the package name is lib64gtk+2.0_0-devel (Maybe somebody have the same problem on Mandriva Linux)

     
  • Cesar Mauri-Loba

    To discuss a different issue start a new forum thread.

     

Log in to post a comment.