2013-03-12 137 views
1

我有正在进行的跨平台项目(Win和Mac),我需要访问USB设备。我找到了完全符合我所有要求的HIDAPI库。由于没有用于HIDAPI库的Delphi Firemonkey包装器(至少我不知道它),所以我正在编写自己的。如何从源代码创建libhidapi.dylib?

HIDAPI项目网站http://www.signal11.us/oss/hidapi/说: “在Windows上,可以选择将HIDAPI内置到DLL中。 “

这是真的,因为我已经成功地使用Visual Studio编译源代码并创建了在Windows上完美工作的DLL。现在,因为我不是C程序员,而且OSX不是我最强的技能,所以我想知道它是否可行,以及如何从给定源代码创建libhidapi.dylib?

回答

1

也许我错过了你的问题......但它看起来就像在你提供的那个链接上,你需要编译为Linux/Mac平台的.so。然后你可以使用的链接从Mac上:

要编译为一个动态的Mac(名为.dylib)库。

构建指令

...

的Mac OS X: 切换到MAC /目录并运行make。

要建立测试GUI:

在Linux和Mac上,从hidtest /目录做。请务必先安装狐狸作为工具>在README.txt中所描述的

然后README本身告诉你什么先决条件有建于Mac,以及如何生成最终的共享对象库:

Prerequisites: 
--------------- 

的Mac:

在Mac上,您需要安装狐工具包,如果你想建立 测试GUI。有两种方法可以做到这一点,每种都有轻微的 并发症。你使用哪种方法取决于你的用例。

如果你想要建立测试GUI只是为了你 自己的电脑上自己的测试,那么最简单的方法是安装福克斯工具箱 使用的端口:sudo的港口安装狐狸

如果你想建立TestGUI应用程序包要重新分配给其他人,您需要从源代码安装Fox-toolkit。这是 ,因为使用端口安装的fox版本使用与Apple X11 库不兼容的端口X11库。如果您使用端口安装Fox,然后尝试分发 您的内置应用程序包,它将无法在其他系统上运行。 要手动安装狐工具包,从 http://www.fox-toolkit.org下载源码包,解压,并从 提取的源代码中运行以下命令:在运行./configure & &使& &使安装

以及如何生成中的.so:

大厦HIDAPI到一个共享库在UNIX平台上:

U上使用Mingw或Cygwin的Linux,FreeBSD,Mac甚至Windows等类似nix的系统,构建标准的 系统安装共享库的最简单方法是使用GNU Autotools内部版本号 系统 。如果从Git仓库签出的来源,运行 如下:

./bootstrap的./configure使化妆用sudo

如果你下载的安装< -----为根,或 源代码包(即:如果你没有运行git clone), 你可以跳过./bootstrap步骤。

./configure可以带有几个控制构建的参数。最有可能使用的 是:--enable-testgui启用测试GUI的构建 。这需要安装Fox工具包。 有关在每个平台上安装Fox-Toolkit的说明,请参阅上面的 先决条件部分。

--prefix =/usr指定要在哪里安装输出标题库和 库。上面的例子会将头文件放在/ usr/lib中的 /usr/include和二进制文件中。默认是 安装到/ usr/local,这在大多数系统上都很好。

所以,你应该能够只是遵循这些指令,但修改.dylib扩展,并添加编译标志:-dynamiclib-fPIC

+0

您好迈克, 谢谢您的答复。我忘了提及,我已经成功地编译了C文件和testgui应用程序,按照您引用的自述文件中的说明进行操作。我不知道的是如何创建dylib,你的帖子开头的答案100%正确。其实这正是我所期待的: “然后你可以使用Mac的链接: ld(1)和dlopen(3) 动态库编程主题 Mach-O编程主题 要编译为Mac动态库(.dylib)“。 非常感谢您的回复。 – 2013-03-12 12:13:46

+0

@ user1831803 - 非常欢迎,很高兴帮助! – Mike 2013-03-12 12:15:03