PerformanceLib.cpp:(.text+0x24)||undefined...

Help
2010-04-08
2013-05-09
  • Nobody/Anonymous

    Hello,

    If I try the simple code run under Codeblocks on Ubuntu 9.10, I have a lot of
    errors. Like:

    ../../contrib/IVT/lib/linux/libivt.a(performance_lib.o)||In function `PerformanceLibInitializer::FreePerformanceLib()':|
    PerformanceLib.cpp:(.text+0x24)||undefined reference to `dlclose'|
    ../../contrib/IVT/lib/linux/libivt.a(performance_lib.o)||In function `PerformanceLibInitializer::LoadPerformanceLib()':|
    PerformanceLib.cpp:(.text+0x68)||undefined reference to `dlopen'|
    PerformanceLib.cpp:(.text+0x7e)||undefined reference to `dlsym'|
    PerformanceLib.cpp:(.text+0x9d)||undefined reference to `dlsym'|
    PerformanceLib.cpp:(.text+0xbc)||undefined reference to `dlsym'|
    PerformanceLib.cpp:(.text+0xdb)||undefined reference to `dlsym'|
    PerformanceLib.cpp:(.text+0xfa)||undefined reference to `dlsym'|
    ../../contrib/IVT/lib/linux/libivt.a(performance_lib.o)||In function `PerformanceLibInitializer::UnloadLibrary()':|
    PerformanceLib.cpp:(.text+0xd14)||undefined reference to `dlclose'|
    ../../contrib/IVT/lib/linux/libivt.a(performance_lib.o)||In function `PerformanceLibInitializer::~PerformanceLibInitializer()':|
    PerformanceLib.cpp:(.text._ZN25PerformanceLibInitializerD1Ev+0x14)||undefined reference to `dlclose'|
    ||=== Build finished: 9 errors, 0 warnings ===|

    #include <iostream>
    using namespace std;
    #include "Image/ImageProcessor.h"
    #include "Image/ByteImage.h"
    int main()
    {
        CByteImage image;
        //bild laden
        if(!image.LoadFromFile("tool_scene.bmp")){
            printf("Fehler: konnte Bild nicht öffnen \n");
            return 1;
        }
        //convert color image to gray
        CByteImage gray_image(image.width, image.height, CByteImage::eGrayScale);
        ImageProcessor::ConvertImage(&image, &gray_image);
        gray_image.SaveToFile("output.bmp");
        return 0;
    }
    

    When I comment this line of code:

    ImageProcessor::ConvertImage(&image, &gray_image);
    

    it will compile…

    What's wrong there??

    Thanks :)

     
  • Pedram Azad

    Pedram Azad - 2010-04-12

    Hi,

    that problem is fixed with the new version 1.3.8 from today.

    The file PerformanceLib.cpp is only needed if someone purchaes the Keyetech Performance Primitives (KPP, www.keyetech.de) and chooses automatic integration into the IVT.

    I added a flag USE_KPP in IVT/src/Makefile.base, which is set to USE_KPP = 0 per default, so the functions dlopen, dlclose, dlsym are not needed.

    Please let me know if this fix solved your problem.

    Pedram

     
  • Nobody/Anonymous

    Hi,

    thank you for the response and your fix! :)
    This fix resolved my problem above, but befor I had another error.

    When I tried do compile the IVT, I had the error:

    g++ -O3 -I. -c Image/StereoVision.cpp -o build/stereo_vision.o
    Image/StereoVision.cpp: In member function bool
    CStereoVision::Process(const CByteImage*, const CByteImage*, CByteImage*,
    int, int, int, int, int):
    Image/StereoVision.cpp:140: error: INT_MAX was not declared in this scope
    make: *** [build/stereo_vision.o] Fehler 1
    

    Then I compared the "StereoVision.cpp" from version 1.3.7 and the 1.3.8. On line 140 in this file, I found a new introduced variable INT_MAX, but I can't find any declaration. After I set this variable to the old value from 1.3.7, "make" run through without error.

    After that I tried my  example above and now it's running.

    Thank you :)

     
  • Pedram Azad

    Pedram Azad - 2010-04-12

    Hi,

    I had forgotten the include <limits.h>, which is necessary with some compilers. I added it and re-uploaded the new version ivt-1.3.8.zip. Should work now.

    Pedram

     
  • Nobody/Anonymous

    Hi,

    yes, now it's works!

    :)

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks