我想通过 PLT Racket 控制我的网络摄像头,理想情况下是为一些 OpenCV 的 C api 制作一个轻型包装库。不过,我遇到了一点麻烦,因为我不确定来自 OpenCV 的哪些目标文件是库……我知道这很尴尬。我查看了 Python API 是如何工作的,我看到 cv.so 文件中有模块,但我不确定在我的二进制文件中使用什么。我在 Mac OSX 上
我有这个
(get-ffi-obj function-name (ffi-lib lib-name) format)...)
但我不确定要将哪个文件作为“lib-name”传递。 在我的 opencv 安装目录中,我有 ../opencv/2.2/lib ,其中包含许多 .dylib 文件。似乎都不起作用,但它们是迄今为止最好的猜测。我需要使用不同的编译器选项构建 OpenCV 吗?
最佳答案
是的,在 OSX 上 .dylib
文件是这些(动态)库。在 Windows 上它们是 .dll
文件,在 linux 上是 .so
。请注意,ffi-lib
会进行一些搜索,因此您可以使用单个名称,它将使用系统的工具(例如,dlopen()
)来查找库。
关于c - PLT Racket 中的 FFI 与 openCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5084429/