Augmented Reality Junkie

AR Developer | Postgraduate Research Student |

Compiling PTAM on OSX Leopard

with 16 comments

**NOTE: THIS IS TO GET PTAM RUNNING ON LEOPARD (10.5.8) NOT ON SNOW LEOPARD. WHILE MUCH OF THIS INFORMATION WILL BE USEFUL FOR SNOW LEOPARD, YOU WILL NEED TO COMPILE THE LIBRARIES FOR 32-bit as PTAM DOES NOT SUPPORT 64-BIT LIBRARIES **

**SNOW LEOPARD NOTES CAN NOW BE FOUND HERE FROM MY COLLEAGUE ANDREW HATCH**

Parallel Tracking and Mapping is a solution developed by Georg Klein et al. at the Robotics Lab in Oxford University. It addresses the problem of markerless Augmented Reality by using the features which already exist within the environment, rather than having to add special markers to the scene.

It is officially supported by OSX in the downloadable files, however I ran into a couple of issues, and it seems a few other people on the net have had similar issues too. So here are my solutions to the problems I had:

Firstly you need to make sure that you have the X11 libraries for OSX installed. These can be found on your leopard CD or on the XQuartz project website. You will also need to install fink in order to grab some packages. Let’s do that first. Fire up your terminal and:

sudo fink install readline5 

That will take care of one of the problems before you even get to it. Also you will need to compile the libc1394 sources which area available here. Now I’m going to assume you’ve downloaded PTAM and the required libraries as explained in the PTAM README.txt

The order of compilation is:

  1. TooN
  2. libcvd
  3. gvars3
  4. PTAM

TooN is a straightfoward ./configure make sudo make install – that should work first time for you

libcvd isn’t that easy. In your libcvd source directory, edit the file ./cvd/gl_helpers.h

You need to change:

#include <GL/gl.h>
#include <GL/glu.h>

To:

#include <OpenGL/gl.h>
#include <OpenGL/glu.h>

Which makes sure that the OSX X11 libraries are found and used for this. Save and exit.

Now you can go for a configure, the README file suggests that you use the options

 ./configure --without-ffmpeg 

However, I found that the configure script still has difficulty finding the X libraries resulting in a compilation line:

 Checking for X.... no 

In order to explicitly tell the compiler where to find it:

./configure --without-ffmpeg --x-libraries=/usr/X11/lib --x-includes=/usr/X11/include

Moving swiftly onwards to the next error:

Undefined symbols:
"_png_set_gray_1_2_4_to_8", referenced from:
CVD::PNG::png_reader::png_reader(std::basic_istream<char, std::char_traits<char> >&)in png.o</div>
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [libcvd.dylib] Error 1

This is caused by a conflict between libcvd and the newer version of libpng. In order to remedy it edit (in your libcvd source folder still) ./pnm_src/png.cc

Find the line which makes a function call to:

 png_set_gray_1_2_4_to_8 

and replace the call with

 png_set_expand_gray_1_2_4_to_8

That should resolve that error.

You should now be able to go to PTAM source folder, run the makefile and all should go OK.

About these ads

Written by Apartment Brewer

August 17, 2010 at 3:57 pm

16 Responses

Subscribe to comments with RSS.

  1. [...] and compile PTAM first, it comes with great instructions and I have some troubleshooting notes here as you will need all the same [...]

    • I try to compile the libcvd in snow leopard in 32 bit, it says it found the X and lGL, however, I got following error.
      ./cvd/gl_helpers.h: In function ‘void CVD::glVertex(const C&) [with C = TooN::Vector]’:
      progs/calibrate.cxx:75: instantiated from here
      ./cvd/gl_helpers.h:450: error: no type named ‘const_iterator’ in ‘struct TooN::Vector’
      ./cvd/gl_helpers.h:450: error: ‘const struct TooN::Vector’ has no member named ‘end’
      ./cvd/gl_helpers.h:450: error: no type named ‘const_iterator’ in ‘struct TooN::Vector’
      ./cvd/gl_helpers.h:450: error: no type named ‘const_iterator’ in ‘struct TooN::Vector’
      ./cvd/gl_helpers.h:450: error: no type named ‘const_iterator’ in ‘struct TooN::Vector’

      Do you have the same error on compiling PTAM in snow leopard?

      Leo

      August 21, 2010 at 12:48 pm

      • which version of TooN are you using, and did you force the TooN compile to be done in 32bit also?

        Cheers

        Adam

        ajclarkson

        August 23, 2010 at 9:35 am

      • No, I didn’t. I tried compile TooN in 32 bit, but still get the same error. I am using the now using Toon 2.0 To compile the PTAM on snow leopard is quit a pain.

        Leo

        August 24, 2010 at 11:37 am

      • Got the link to my colleagues notes on how to compile on SL. I’ll update the post above, but here you go:

        http://www.andrewhatch.net/2010/08/ptam-on-os-x-1064.html#more

        Hope that helps,

        Adam

        ajclarkson

        August 24, 2010 at 11:41 am

      • Thanks a lot. I will try it.

        Cheers

        Leo

        August 24, 2010 at 12:00 pm

      • I’ve seen it working on his MBP so hopefully you will have the same success

        ajclarkson

        August 24, 2010 at 12:01 pm

    • I tried the post you just gave, the libcvd now is compiled. However, I still get the error in PTAM.

      ld: warning: directory ‘/MY_CUSTOM_LINK_PATH/’ following -L not found
      ld: warning: in /usr/local/lib/libcvd.dylib, file was built for i386 which is not the architecture being linked (x86_64)
      Undefined symbols:
      “CVD::QT::RawQT::frame_rate()”, referenced from:
      CVD::QTBuffer::frame_rate() in VideoSource_OSX.o
      “CVD::GLWindow::size() const”, referenced from:
      GLWindow2::SetupWindowOrtho() in GLWindow2.o
      GLWindow2::DrawCaption(std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
      GLWindow2::DrawCaption(std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
      GLWindow2::DrawCaption(std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
      GLWindow2::DrawCaption(std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
      GLWindow2::DrawCaption(std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
      GLWindow2::DrawCaption(std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
      GLWindow2::DrawMenus() in GLWindow2.o
      GLWindow2::DrawMenus() in GLWindow2.o
      GLWindow2::SetupViewport() in GLWindow2.o
      GLWindow2::SetupViewport() in GLWindow2.o
      GLWindow2::SetupVideoRasterPosAndZoom() in GLWindow2.o
      GLWindow2::SetupVideoRasterPosAndZoom() in GLWindow2.o
      “CVD::Thread::start(CVD::Runnable*)”, referenced from:
      MapMaker::MapMaker(Map&, ATANCamera const&)in MapMaker.o
      “CVD::QT::RawQT::put_frame(unsigned char*)”, referenced from:
      CVD::QTBuffer::put_frame(CVD::VideoFrame*)in VideoSource_OSX.o

      It seems the same error as I have before.

      Leo

      August 24, 2010 at 12:43 pm

      • Hi,
        I have the same error:

        Undefined symbols for architecture x86_64:
        “CVD::QT::RawQT::frame_rate()”, referenced from:
        CVD::QTBuffer::frame_rate() in VideoSource_OSX.o
        “CVD::QT::RawQT::frame_pending()”, referenced from:
        CVD::QTBuffer::frame_pending() in VideoSource_OSX.o
        “CVD::QT::RawQT::get_frame_format_string()”, referenced from:
        VideoSource::GetAndFillFrameBWandRGB(CVD::Image&, CVD::Image<CVD::Rgb >&)in VideoSource_OSX.o
        “CVD::QT::RawQT::get_frame()”, referenced from:
        CVD::QTBuffer::get_frame() in VideoSource_OSX.o
        “CVD::QT::RawQT::put_frame(unsigned char*)”, referenced from:
        CVD::QTBuffer::put_frame(CVD::VideoFrame*)in VideoSource_OSX.o
        “CVD::QT::RawQT::RawQT(CVD::ImageRef const&, unsigned int, unsigned int, bool, bool)”, referenced from:
        VideoSource::VideoSource()in VideoSource_OSX.o
        “CVD::QT::RawQT::~RawQT()”, referenced from:
        CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
        CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
        non-virtual thunk to CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
        non-virtual thunk to CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
        “CVD::QT::RawQT::get_size() const”, referenced from:
        CVD::QTBuffer::size() in VideoSource_OSX.o
        CVD::QTBuffer::get_frame() in VideoSource_OSX.o
        “typeinfo for CVD::QT::RawQT”, referenced from:
        typeinfo for CVD::QTBufferin VideoSource_OSX.o
        ld: symbol(s) not found for architecture x86_64
        collect2: ld returned 1 exit status
        make: *** [PTAM] Error 1

        Any ideas what’s the cause ? My system is i386.

        Thanks!

        John

        November 12, 2012 at 3:18 am

  2. Using OS X 10.8. I got this far and have the same error. Any solutions yet?

    Thanks:

    PS: How I managed to get this far:
    Got X11 and installed flink and readline5…
    After that

    1, Got PTAM from:

    https://github.com/BeLioN-github/PTAM

    2, Compile Toon:
    a, Go to PTAM-master/3rdpartyold/Toon in terminal.
    b, install Toon with: ./configure; make; sudo make install;

    3, Compile Libcvd:
    a, Got libcvd from
    git clone git://git.savannah.nongnu.org/libcvd.git
    b, Install for proper architecture with: ./configure CC=”gcc -arch i386″ CXX=”g++ -arch i386″; make; sudo make install;

    4, Compile gvar:
    a, In terminal go to: PTAM-master/3rdpartyold/gvars3
    b, Compile: ./configure CC=”gcc -arch i386″ CXX=”g++ -arch i386″; make; sudo make install;

    5, Compile PTAM:
    a, Go to PTAM-master
    b, Copy Build/OSX files to PTAM-master
    c, Edit Makefile: Add lib locations for X11: /opt/X11/include -L/opt/X11/lib
    d, Edit Makefile: Add lib locations for gvar/TooN/libcvd: /usr/local/include -L/usr/local/lib
    e, Edit Makefile: I added the default lib locations too: /opt/local/include -L/opt/local/lib
    f, So I got a MakeFile like:

    #CC = g++ -g -O3
    CC = g++ -g -O3 -arch i386
    COMPILEFLAGS = -I /opt/local/include /usr/local/include /opt/X11/include -D_OSX -D_REENTRANT -m32
    LINKFLAGS = -framework OpenGL -framework VecLib -L/opt/X11/lib -L/usr/local/lib -L/opt/X11/lib -lGVars3 -lcvd -m32

    g, And try to compile it with: make
    h, I too got the same error.

    ilsinszkibal

    March 8, 2013 at 9:02 pm

    • The error:

      Undefined symbols for architecture i386:
      “CVD::QT::RawQT::frame_rate()”, referenced from:
      CVD::QTBuffer::frame_rate() in VideoSource_OSX.o
      “CVD::QT::RawQT::frame_pending()”, referenced from:
      CVD::QTBuffer::frame_pending() in VideoSource_OSX.o
      “CVD::QT::RawQT::get_frame_format_string()”, referenced from:
      VideoSource::GetAndFillFrameBWandRGB(CVD::Image&, CVD::Image<CVD::Rgb >&)in VideoSource_OSX.o
      “CVD::QT::RawQT::get_frame()”, referenced from:
      CVD::QTBuffer::get_frame() in VideoSource_OSX.o
      “CVD::QT::RawQT::put_frame(unsigned char*)”, referenced from:
      CVD::QTBuffer::put_frame(CVD::VideoFrame*)in VideoSource_OSX.o
      “CVD::QT::RawQT::RawQT(CVD::ImageRef const&, unsigned int, unsigned int, bool, bool)”, referenced from:
      VideoSource::VideoSource()in VideoSource_OSX.o
      “CVD::QT::RawQT::~RawQT()”, referenced from:
      CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
      CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
      non-virtual thunk to CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
      non-virtual thunk to CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
      “CVD::QT::RawQT::get_size() const”, referenced from:
      CVD::QTBuffer::size() in VideoSource_OSX.o
      CVD::QTBuffer::get_frame() in VideoSource_OSX.o
      “typeinfo for CVD::QT::RawQT”, referenced from:
      typeinfo for CVD::QTBufferin VideoSource_OSX.o
      ld: symbol(s) not found for architecture i386
      collect2: ld returned 1 exit status
      make: *** [PTAM] Error 1

      ilsinszkibal

      March 8, 2013 at 9:12 pm

      • Got a new exception with CVD::yuv422

        Undefined symbols for architecture i386:
        “CVD::QT::RawQT::frame_rate()”, referenced from:
        CVD::QTBuffer::frame_rate() in VideoSource_OSX.o
        “CVD::QT::RawQT::frame_pending()”, referenced from:
        CVD::QTBuffer::frame_pending() in VideoSource_OSX.o
        “CVD::QT::RawQT::get_frame_format_string()”, referenced from:
        VideoSource::GetAndFillFrameBWandRGB(CVD::Image&, CVD::Image<CVD::Rgb >&)in VideoSource_OSX.o
        “CVD::QT::RawQT::get_frame()”, referenced from:
        CVD::QTBuffer::get_frame() in VideoSource_OSX.o
        “CVD::QT::RawQT::put_frame(unsigned char*)”, referenced from:
        CVD::QTBuffer::put_frame(CVD::VideoFrame*)in VideoSource_OSX.o
        “CVD::QT::RawQT::RawQT(CVD::ImageRef const&, unsigned int, unsigned int, bool, bool)”, referenced from:
        VideoSource::VideoSource()in VideoSource_OSX.o
        “CVD::QT::RawQT::~RawQT()”, referenced from:
        CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
        CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
        non-virtual thunk to CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
        non-virtual thunk to CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
        “CVD::QT::RawQT::get_size() const”, referenced from:
        CVD::QTBuffer::size() in VideoSource_OSX.o
        CVD::QTBuffer::get_frame() in VideoSource_OSX.o
        “typeinfo for CVD::QT::RawQT”, referenced from:
        typeinfo for CVD::QTBufferin VideoSource_OSX.o
        ld: symbol(s) not found for architecture i386

        ilsinszkibal

        March 12, 2013 at 8:42 pm

  3. All right, got past this one:

    Hade to replace -lcvd to -cvd in LINKFLAGS in Makefile of PTAM-master:

    LINKFLAGS = -framework OpenGL -framework VecLib -L/opt/X11/lib -L/usr/local/lib -L/opt/X11/lib -lGVars3 -cvd -m32

    NEW ERROR:

    Undefined symbols for architecture i386:
    “CVD::glDrawText(std::basic_string<char, std::char_traits, std::allocator > const&, CVD::TEXT_STYLE, double, double)”, referenced from:
    GLWindow2::PrintString(CVD::ImageRef, std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
    GLWindow2::DrawCaption(std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
    “CVD::halfSample(CVD::BasicImage const&, CVD::BasicImage&)”, referenced from:
    KeyFrame::MakeKeyFrame_Lite(CVD::BasicImage&)in KeyFrame.o
    SmallBlurryImage::MakeFromKF(KeyFrame&, double)in SmallBlurryImage.o
    “CVD::fast_nonmax(CVD::BasicImage const&, std::vector<CVD::ImageRef, std::allocator > const&, int, std::vector<CVD::ImageRef, std::allocator >&)”, referenced from:
    KeyFrame::MakeKeyFrame_Rest() in KeyFrame.o
    “void CVD::convert_image<CVD::vuy422, CVD::Rgb >(CVD::BasicImage const&, CVD::BasicImage<CVD::Rgb >&)”, referenced from:
    VideoSource::GetAndFillFrameBWandRGB(CVD::Image&, CVD::Image<CVD::Rgb >&)in VideoSource_OSX.o
    “void CVD::convert_image(CVD::BasicImage const&, CVD::BasicImage&)”, referenced from:
    VideoSource::GetAndFillFrameBWandRGB(CVD::Image&, CVD::Image<CVD::Rgb >&)in VideoSource_OSX.o
    “void CVD::convert_image<CVD::yuv422, CVD::Rgb >(CVD::BasicImage const&, CVD::BasicImage<CVD::Rgb >&)”, referenced from:
    VideoSource::GetAndFillFrameBWandRGB(CVD::Image&, CVD::Image<CVD::Rgb >&)in VideoSource_OSX.o
    “void CVD::convert_image(CVD::BasicImage const&, CVD::BasicImage&)”, referenced from:
    VideoSource::GetAndFillFrameBWandRGB(CVD::Image&, CVD::Image<CVD::Rgb >&)in VideoSource_OSX.o
    “CVD::convolveGaussian(CVD::BasicImage const&, CVD::BasicImage&, double, double)”, referenced from:
    SmallBlurryImage::MakeFromKF(KeyFrame&, double)in SmallBlurryImage.o
    “CVD::add_multiple_of_sum(float const*, float const*, float const&, float*, unsigned long)”, referenced from:
    void CVD::convolveGaussian(CVD::BasicImage const&, CVD::BasicImage&, double, double)in EyeGame.o
    “CVD::fast_corner_detect_10(CVD::BasicImage const&, std::vector<CVD::ImageRef, std::allocator >&, int)”, referenced from:
    KeyFrame::MakeKeyFrame_Lite(CVD::BasicImage&)in KeyFrame.o
    “CVD::QT::RawQT::frame_rate()”, referenced from:
    CVD::QTBuffer::frame_rate() in VideoSource_OSX.o
    “CVD::QT::RawQT::frame_pending()”, referenced from:
    CVD::QTBuffer::frame_pending() in VideoSource_OSX.o
    “CVD::QT::RawQT::get_frame_format_string()”, referenced from:
    VideoSource::GetAndFillFrameBWandRGB(CVD::Image&, CVD::Image<CVD::Rgb >&)in VideoSource_OSX.o
    “CVD::QT::RawQT::get_frame()”, referenced from:
    CVD::QTBuffer::get_frame() in VideoSource_OSX.o
    “CVD::QT::RawQT::put_frame(unsigned char*)”, referenced from:
    CVD::QTBuffer::put_frame(CVD::VideoFrame*)in VideoSource_OSX.o
    “CVD::QT::RawQT::RawQT(CVD::ImageRef const&, unsigned int, unsigned int, bool, bool)”, referenced from:
    VideoSource::VideoSource()in VideoSource_OSX.o
    “CVD::QT::RawQT::~RawQT()”, referenced from:
    CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
    CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
    non-virtual thunk to CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
    non-virtual thunk to CVD::QTBuffer::~QTBuffer()in VideoSource_OSX.o
    “CVD::timer”, referenced from:
    CVD::QTBuffer::get_frame() in VideoSource_OSX.o
    MapMaker::AddPointEpipolar(KeyFrame&, KeyFrame&, int, int)in MapMaker.o
    MapMaker::InitFromStereo(KeyFrame&, KeyFrame&, std::vector<std::pair, std::allocator<std::pair > >&, TooN::SE3&)in MapMaker.o
    CVD::QTBuffer::get_frame() in VideoSource_OSX.o
    MapMaker::AddPointEpipolar(KeyFrame&, KeyFrame&, int, int)in MapMaker.o
    MapMaker::InitFromStereo(KeyFrame&, KeyFrame&, std::vector<std::pair, std::allocator<std::pair > >&, TooN::SE3&)in MapMaker.o
    “CVD::Thread::join()”, referenced from:
    MapMaker::~MapMaker()in MapMaker.o
    MapMaker::~MapMaker()in MapMaker.o
    “CVD::Thread::stop()”, referenced from:
    MapMaker::~MapMaker()in MapMaker.o
    MapMaker::~MapMaker()in MapMaker.o
    “CVD::Thread::sleep(unsigned int)”, referenced from:
    MapMaker::run() in MapMaker.o
    “CVD::Thread::start(CVD::Runnable*)”, referenced from:
    MapMaker::MapMaker(Map&, ATANCamera const&)in MapMaker.o
    “CVD::Thread::Thread()”, referenced from:
    MapMaker::MapMaker(Map&, ATANCamera const&)in MapMaker.o
    “CVD::Thread::~Thread()”, referenced from:
    MapMaker::MapMaker(Map&, ATANCamera const&)in MapMaker.o
    MapMaker::~MapMaker()in MapMaker.o
    MapMaker::~MapMaker()in MapMaker.o
    “CVD::GLWindow::swap_buffers()”, referenced from:
    System::Run() in System.o
    “CVD::GLWindow::handle_events(CVD::GLWindow::EventHandler&)”, referenced from:
    GLWindow2::HandlePendingEvents() in GLWindow2.o
    “CVD::GLWindow::init(CVD::ImageRef const&, int, std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&)”, referenced from:
    GLWindow2::GLWindow2(CVD::ImageRef, std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
    “CVD::GLWindow::~GLWindow()”, referenced from:
    System::~System()in main.o
    GLWindow2::GLWindow2(CVD::ImageRef, std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
    GLWindow2::~GLWindow2()in GLWindow2.o
    GLWindow2::~GLWindow2()in GLWindow2.o
    System::System()in System.o
    “CVD::Internal::aligned_free(void*)”, referenced from:
    System::~System()in main.o
    System::System()in System.o
    CVD::Image::operator=(CVD::Image const&)in System.o
    CVD::Image::resize(CVD::ImageRef const&)in System.o
    CVD::Image<CVD::Rgb >::operator=(CVD::Image<CVD::Rgb > const&)in System.o
    CVD::Image<CVD::Rgb >::resize(CVD::ImageRef const&)in System.o
    CVD::Image::operator=(CVD::Image const&)in KeyFrame.o

    “CVD::Internal::aligned_alloc(unsigned long, unsigned long)”, referenced from:
    CVD::Image<CVD::Rgb >::Image(CVD::ImageRef const&)in System.o
    CVD::Image::resize(CVD::ImageRef const&)in System.o
    CVD::Image::resize(CVD::ImageRef const&)in KeyFrame.o
    CVD::Image::Image(CVD::ImageRef const&)in SmallBlurryImage.o
    CVD::Image<TooN::Vector >::Image(CVD::ImageRef const&)in SmallBlurryImage.o
    CVD::Image::resize(CVD::ImageRef const&)in SmallBlurryImage.o
    CVD::Image<TooN::Vector >::Image(CVD::ImageRef const&)in MapMaker.o

    “CVD::cvd_timer::get_time()”, referenced from:
    CVD::QTBuffer::get_frame() in VideoSource_OSX.o
    MapMaker::AddPointEpipolar(KeyFrame&, KeyFrame&, int, int)in MapMaker.o
    MapMaker::InitFromStereo(KeyFrame&, KeyFrame&, std::vector<std::pair, std::allocator<std::pair > >&, TooN::SE3&)in MapMaker.o
    “CVD::glSetFont(std::basic_string<char, std::char_traits, std::allocator > const&)”, referenced from:
    GLWindow2::GLWindow2(CVD::ImageRef, std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
    “CVD::QT::RawQT::get_size() const”, referenced from:
    CVD::QTBuffer::size() in VideoSource_OSX.o
    CVD::QTBuffer::get_frame() in VideoSource_OSX.o
    “CVD::Thread::shouldStop() const”, referenced from:
    MapMaker::run() in MapMaker.o
    “CVD::GLWindow::size() const”, referenced from:
    GLWindow2::SetupViewport() in GLWindow2.o
    GLWindow2::SetupVideoRasterPosAndZoom() in GLWindow2.o
    GLWindow2::SetupWindowOrtho() in GLWindow2.o
    GLWindow2::DrawCaption(std::basic_string<char, std::char_traits, std::allocator >)in GLWindow2.o
    GLWindow2::DrawMenus() in GLWindow2.o
    “typeinfo for CVD::QT::RawQT”, referenced from:
    typeinfo for CVD::QTBufferin VideoSource_OSX.o
    “typeinfo for CVD::Thread”, referenced from:
    typeinfo for MapMakerin MapMaker.o
    ld: symbol(s) not found for architecture i386
    collect2: ld returned 1 exit status
    make: *** [PTAM] Error 1
    make: *** Waiting for unfinished jobs….

    ilsinszkibal

    March 13, 2013 at 1:53 pm

    • Did you solve this error? I encounter the same. Thanks in advance!

      Mark

      July 13, 2013 at 3:57 am

      • I managed to build PTAM, but I dont remember how I did it. My comment below – which I made back then – my help.

        ilsinszkibal

        July 13, 2013 at 3:07 pm

  4. Works for iOS 5.0:

    https://github.com/twerdster/iPTAM

    Dont forget to change the deplayment tartget ( I used 4.3 ) and the compiler to GCC.

    ilsinszkibal

    March 19, 2013 at 11:39 am


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: