Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Samuel Audet
    @saudet
    That was 1.3
    Srdjan Prodanovic
    @prodanovic
    Yes, the binaries. Thanks!
    Samuel Audet
    @saudet
    It's always possible to rebuild from source on older versions of CUDA though
    Srdjan Prodanovic
    @prodanovic
    I was doing that 3 years ago, and frankly its much easier for me to upgrade CUDA :)
    Kim Eik
    @netbrain
    how should i debug symbol lookup errors like the following?
    symbol lookup error: /home/netbrain/.javacpp/cache/imbs-mt-linux-x86_64.jar/org/bytedeco/imbs/linux-x86_64/libjniimbs.so: undefined symbol: _ZN24BackgroundSubtractorIMBSC1Ev
    Samuel Audet
    @saudet
    $ c++filt _ZN24BackgroundSubtractorIMBSC1Ev
    BackgroundSubtractorIMBS::BackgroundSubtractorIMBS()
    Looks like that class is missing the default constructor's definition. If it's actually missing, we can Info.skip() it or in this case might be easier to use Info.purify() if we're not supposed to be able to allocate it directly anyway.
    Kim Eik
    @netbrain
    well thing is,, seems to be there..
    Samuel Audet
    @saudet
    If you're not linking with it though it won't be able to find it.
    Kim Eik
    @netbrain
    $ readelf -Ws org/bytedeco/imbs/linux-x86_64/libjniimbs.so | grep _ZN24BackgroundSubtractorIMBSC1Ev
        10: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND _ZN24BackgroundSubtractorIMBSC1Ev
    Samuel Audet
    @saudet
    You'll need to link it with the library that has that symbol, but with a number instead of "UND".
    If you don't have that library, you'll need to figure out how you're supposed to build that library so that it ends up somewhere.
    Kim Eik
    @netbrain
    I believe this is whats being linked from the java application
    Samuel Audet
    @saudet
    No, Java can't do that, your C++ compiler needs to do that.
    Kim Eik
    @netbrain
    ok, so where is the fault, in cppbuild.sh?
    Samuel Audet
    @saudet
    Well, where is that library anyway?
    Kim Eik
    @netbrain
    its the preset that im building
    Samuel Audet
    @saudet
    If it's nowhere to be found, yes, you'd want to build it as part of cppbuild.sh
    You may want to read this if you haven't already:
    https://github.com/bytedeco/javacpp-presets/wiki/Create-New-Presets
    Kim Eik
    @netbrain
    Im confused, what does UND mean in this context?
    undefined?
    Kim Eik
    @netbrain
    ok, think im on to something
    ok.. now i understand..
    so the so file produced by javacpp doesnt actually contain the library so aswell, only the generated code from javacpp to serve as the jni binding
    would that be a fair statement?
    Kim Eik
    @netbrain
    no.. guess im wrong.
    Kim Eik
    @netbrain
    Wohoo, victory.
    so, was basically missing to move the compiled library into the lib folder under cppbuild.
    now, i get to do the same thing all over again in windows :)
    Samuel Audet
    @saudet
    @netbrain BTW, we can use AppVeyor and Travis CI for that cross-platform builds on forks by modifying the .appveyor.yml and .travis.yml files
    Kim Eik
    @netbrain
    Wasnt the end of th story after all :( seems to be something wrong with load order. if i try to use the library it gets unsatisfied link error on opencv_stitching. If i add opencv_stitching to the inherit clause then it get's a bit further. but now it complains it is missing cudafeatures2d. So what should i do in this situation keep adding to the inherit clause? or is the issue elsewhere?
    i mean, all the required libraries are present, its just that it does not load them implicitly in the correct order. So im guessing i need to define how these libraries should be loaded?
    and my gut feeling is telling me that the inherit clause should only be used for resolving compile time issues. not runtime..
    Samuel Audet
    @saudet
    It's also used at runtime, although there is "preload" for that too, so yes just put everything there.
    Kim Eik
    @netbrain
    would you prefer preload over inherit?
    Kim Eik
    @netbrain
    is this really the way to go? i'm getting a foul taste from this..
    @Properties(
            inherit = {
                    opencv_core.class,
                    opencv_highgui.class,
                    opencv_imgproc.class,
                    opencv_features2d.class,
                    opencv_stitching.class,
                    opencv_aruco.class,
                    opencv_bgsegm.class,
                    opencv_bioinspired.class,
                    opencv_face.class,
                    opencv_img_hash.class,
                    opencv_quality.class,
                    opencv_saliency.class,
            },
    ....
    I find it weird that i have to add dependency on stuff that the library itself (afaik) doesnt depend on
    Samuel Audet
    @saudet
    yes, we just need to add the ones it depends on, and those will inherit others transitively
    Kim Eik
    @netbrain
    Caused by: java.lang.UnsatisfiedLinkError: C:\dev\javacpp\target\test-classes\org\bytedeco\javacpp\windows-x86_64\jniPointerTest.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
    anyone ever seen this before on a windows system?
    Samuel Audet
    @saudet
    It just means you'll need to use the compiler for x64 (amd64)
    Kim Eik
    @netbrain
    tried setting TARGET_ARCH and explicitly setting -Djavacpp.platform
    Kim Eik
    @netbrain
    Target: x86_64-w64-mingw32
    Kim Eik
    @netbrain
    ah, ok. seems to be visual studio with is confiugured for 32bit.
    Samuel Audet
    @saudet
    vcvarsall.bat amd64, if you're using that
    Kim Eik
    @netbrain
    yeah, testing that now. so would it be possible to use dockcross to compile javacpp and javacpp-presets or is there anything they require native toolchains?
    Compiling C:\dev\javacpp\target\test-classes\org\bytedeco\javacpp\windows-x86_64-ext1\jniBuilderTest.dll
    cl /IC:\jdk-13\include /IC:\jdk-13\include\win32 C:\dev\javacpp\target\test-classes\org\bytedeco\javacpp\jniBuilderTest.cpp C:\dev\javacpp\jnijavacpp.cpp /Oi /O2 /EHsc /Gy /GL /MD /LD /W3 /link /OUT:jniBuilderTest.dll psapi.lib
    Deleting C:\dev\javacpp\target\test-classes\org\bytedeco\javacpp\jniBuilderTest.cpp
    Deleting C:\dev\javacpp\jnijavacpp.cpp
    Loader
    Note: UnsatisfiedLinkError should get thrown here and printed below.
    java.lang.UnsatisfiedLinkError: LoadLibrary() failed with 0x7e
    Builder
    test was successful though
    ah haha, that was expected..
    didnt read the line above. lol