我是一名Web开发人员,在C ++编译器方面的知识很差。
我有一个Electron应用,并使用libmtp。我想在我的项目中包含libmtp,以避免在机器上没有安装libmpt的情况。
我从nodejs wrapper调用libmtp函数:
...
var mtp = new ffi.Library(pathToSrc + '/libmtp.9.dylib', {
...
libmtp依赖于libusb,所以如果计算机上没有安装libusb,我会收到错误
错误:动态链接错误:dlopen(/Users/username/Projects/projectname/build/projectname-darwin-x64/projectname.app/Contents/Resources/app/libmtp.9.dylib,2):库未加载:/usr/local/lib/libusb-1.0.0.dylib
所以问题是如何将libmtp与libusb连接
我可以考虑两种方式:
感谢您的回答!
答案 0 :(得分:0)
您可以将libusb放入捆绑包中,然后使用lib-name-tool更改其搜索路径。 lib-name-tool允许您更改lib的搜索,以便它在bundle中而不是/ usr / local / lib中查找。这样就不需要安装本地副本了。该站点展示了如何使用Qt应用程序。你的原则是一样的;