[PD-dev] [leapmotion] 2.3.1 linking failure on Windows

William Brent william.brent at gmail.com
Tue Jan 3 22:28:06 CET 2023


Thanks for the extra explanation, that's helpful info. About the C API: yes
I'm already using that one successfully on Windows to build my [ultraleap]
external. And that API even works for both the Leap Motion and Ultraleap
hardware, which is nice. Unfortunately, that API (LeapC) no longer supports
gesture and tool tracking. That's why I'm bothering with the old C++ API -
so that Windows users with a Leap Motion Controller can track
gestures/tools in addition to hands.


On Tue, Jan 3, 2023 at 4:19 PM Christof Ressi <info at christofressi.com>
wrote:

> To be more specific, the linker error itself is most likely caused by name
> mangling differences. When you include the header file in your project, the
> class/function definitions use *your *compiler's name mangling, but the
> accompanying DLL has been built with *another *compiler, using a
> different name mangling scheme.
>
> Seems like there is also a C API:
> https://docs.ultraleap.com/tracking-api/leapc-guide.html
>
> Things are of course different on windows: you generally cannot mix&match MSVC libraries with GCC binaries (and vice versa), at least if c++ is involved.
>
> For the sake of completeness: yes, that's true for the typical case, but
> there are techniques for creating binary compatible C++ interfaces. The
> most prominent one is COM. Other examples that come to my mind are the VST3
> SDK or openvr SDK.
>
> On 03.01.2023 21:12, IOhannes m zmölnig wrote:
>
> Am 3. Jänner 2023 23:10:59 MEZ schrieb William Brent <william.brent at gmail.com> <william.brent at gmail.com>:
>
> x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
> src/leapmotion.o:leapmotion.cpp:(.text+0x411): undefined reference to
> `Leap::Frame::timestamp() const'
>
> C++ is a fantastic language.
> Unfortunately it is not really standardised on the binary level, which basically means that you might not be able to use c++ libraries compiled with one compiler/linker with binaries created by another compiler/linker.
>
> Now, clang kind of guarantees binary compatibility with g++ binaries, which pretty much covers the Linux & macOS worlds.
> Things are of course different on windows: you generally cannot mix&match MSVC libraries with GCC binaries (and vice versa), at least if c++ is involved.
>
> Proprietary SDKs often provide MSVC libraries.
>
> So if possible, try to use a C-library instead of a C++-library on windows.
>
>
> mfg.sfg.jfd
> IOhannes
>
>
> _______________________________________________
> Pd-dev mailing listPd-dev at lists.iem.athttps://lists.puredata.info/listinfo/pd-dev
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at lists.iem.at
> https://lists.puredata.info/listinfo/pd-dev
>


-- 
William Brent

“Great minds flock together”
Conflations: conversational idiom for the 21st century

www.conflations.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20230103/be6844b0/attachment-0001.htm>


More information about the Pd-dev mailing list