xcode – 链接被抬起..什么是-rpath? MacOS X.

xcode – 链接被抬起..什么是-rpath? MacOS X.,第1张

概述所以,我正在构建一个项目,它使用编译库(.dylib或.so)中的函数.我在适当的位置有头文件和库文件(这是QtRoot,btw的所有部分),但是当我尝试在 Xcode中构建我的项目时,我得到一个调试器错误: dyld: Library not loaded: @rpath/libRIO.so Referenced from: /Users/paulthompson/Documents/Progr 所以,我正在构建一个项目,它使用编译库(.dylib或.so)中的函数.我在适当的位置有头文件和库文件(这是QtRoot,btw的所有部分),但是当我尝试在 Xcode中构建我的项目时,我得到一个调试器错误:

dyld: library not loaded: @rpath/librio.so
Referenced from: /Users/paulthompson/documents/Programming/Build Products/DeBUG/MacHeliosSim.app/Contents/MacOS/MacHeliosSim
Reason: image not found
sharedlibrary apply-load-rules all
Data Formatters temporarily unavailable,will re-try after a ‘continue’. (Cannot call into the loader at present,it is locked.)

现在,如果我从Finder中打开它,那么构建的程序本身就可以正常运行,但每当我尝试从Xcode运行它时,它就会对我产生影响.什么是这个rpath的东西,为什么调试器找不到库,即使Xcode本身知道它们在哪里,显然从Finder运行的程序也可以找到它们?

解决方法 http://en.wikipedia.org/wiki/Rpath_(linking)

它是存储在二进制文件中的路径,用于查找共享库.
当您从Finder启动应用程序时,它可能是一个应用程序包?创建应用程序包时,会将共享库复制到应用程序包中,然后捆绑库的路径变为相对路径. (@executable_path /../框架/ foobar的).你是如何创建适用于Finder的版本的?

上述错误是在链接时发生还是从xcode启动应用程序时发生的? (在后一种情况下,尝试使用DYLD_liBRARY_PATH)

此外,librio的.so扩展名而不是.dylib看起来有点可疑.

总结

以上是内存溢出为你收集整理的xcode – 链接被抬起..什么是-rpath? MacOS X.全部内容,希望文章能够帮你解决xcode – 链接被抬起..什么是-rpath? MacOS X.所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1021308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存