我一直在与cmake摔跤几个小时后结束现在,但我现在得到它来构建make文件,但我正在努力让make命令正常工作。我相信这是我的libub链接的问题,但我很无知。我在Windows上使用cmake GUI。我将提供我的配置是x1c 0d1x的截图,我相信这些都是他们应该如何从LIBUSB_1_LIBRARY除了我认为它不是一个实际的.dll文件(它的a. dll. a),但我找不到一个libusb-1. 0. dll的任何地方。在我的libusb-MinGW/lib文件夹中,我有libusb-1.0.a
,libusb-1.0.dll.a
和libusb-1.0.la
,我还有一个包含libusb-1.0.pc
的pkgconfig文件,所以我不确定是否正确。在libusb-MinGW/bin文件夹中还有一个名为msys-usb-1.0.dll
的dll文件,这是我能找到的唯一的.dll文件,所以也许它就是那个我不确定的文件。如果这是一个非常琐碎的问题,我提前道歉,但我对C相关的任何东西都是非常新的,我只有Python和Java的经验,所以这对我来说是非常未知的领域,似乎没有太多关于如何安装libfreekinect的文档,除了github页面,但我已经看了很长时间了,我没有从中得到任何东西。
- EDIT -我完全忘记了在运行make命令时包含输出。我得到了一个大墙的文字,给予同样的事情与不同的输出,我会提供几行
C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\freenect.dir/objects.a(tilt.c.obj):tilt.c:(.text+0x4b): undefined reference to `libusb_bulk_transfer'
C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\freenect.dir/objects.a(tilt.c.obj):tilt.c:(.text+0xbf): undefined reference to `libusb_error_name'
C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\freenect.dir/objects.a(tilt.c.obj):tilt.c:(.text+0x1cc): undefined reference to `libusb_bulk_transfer'
1条答案
按热度按时间tmb3ates1#
我也遇到了同样的问题(使用MSYS 64)
我从源代码libusb(1.0)中构建了如下代码:
我可以在 /usr/local/lib 中看到文件
在 */usr/local/lib/pkgconfig/libusb-1.0.pc中有一个.pc文件
所以-我去创建一个项目,不必要地链接到这个库
在这个里面我放了一个“Hello.world“C文件..没有别的。
然后我创建一个CMakeLists.txt
那就建吧
我看到信息消息libusb-1.0 was found。
现在编译
我得到一个错误,
我手动检查/usr/local/lib/pkgconfig/linusb-1.0.pc
这看起来不错。-L{$libdir}在链接中丢失.
输入ccmake
我用ccmake..检查了两遍
切换到 * 高级模式 *(按t),并滚动到底部,在那里我找到了pkg_config_lib_USB_libusb-1.0,它指向一个不同的目录(/mingw64/lib/linusb-1.0.a)
CMake现在被修改为
重新构建
所以
它现在正确地构建。
我希望这可以帮助你找到问题。