我想用D中的LEAP运动。
因此,它没有C库,只有C++库。
我试着在命令下喝了2.0.9。
swig -c++ -d -d2 leap.i 此命令输出Leap.d、Leap_im.d、Leap_wrap.cxx、Leap_wrap.h.
但是,我不知道如何在D中使用包装器,也找不到如何使用包装器。
链接错误显示以完整地使用它。
如何在D2中使用这些包装器?
我可以不使用Leap.cpp (Leap.dll的源代码)吗?
更新:
谢谢两个答案。很抱歉因为忙而迟了回复。
第一个结论是,我可以按照以下步骤在Win64上构建Leap示例代码。
所有命令都在下面。
swig -c++ -d -d2 leap.i
dmd -c Leap.d Leap_im.d -m64
dmd LeapTest.d Leap.obj Leap_im.obj -m64
execute LeapTest.exe (require x64 Leap.dll and Leap_wrap.dll)我可以执行Leap计划。
但程序crach onFrame事件回调。
我将在x86上再试一次,并调查原因。
发布于 2013-05-13 09:39:35
很少有有用的链接(有些信息可能已经过时):
我个人从未使用过酒杯,但我的猜测是基于对酒杯的一般了解:
因此,在您的D代码中,您希望导入Leap.d模块。而不是使用Leap_wrap.cxx编译器将C++编译成对象文件,并在链接阶段提供D对象文件、Leap_wrap.o和目标库。这应该能起作用。
不需要P.S. Leap.cpp源。所有的东西链接直接从Leap_wrap.cxx到目标库二进制。
发布于 2013-05-13 08:15:19
转到IRC,FreeNode,或OFTC,频道#D,为了帮助你,我们必须看看这些文件里有什么。我的第一个猜测是,您必须将D文件和C++文件编译成对象文件,并将它们链接到一起。我想SWIG将把C++ API压缩成一组C函数,这可能就是Leap_wrap.cxx所做的。
如果LEAP并不复杂(即。仅仅是一堆简单的C++类),它可能有可能直接与它接口。在这里阅读更多关于它的信息:interface.html。
https://stackoverflow.com/questions/16505047
复制相似问题