i have use sftp upload files when application started run button qt creator works fine.
what found when run on own application returns error 1 curle_unsupported_protocol
checking curl on osx curl -v shows default curl not list sftp.
however somehow qt creator runs app in different context uses curl has support sftp, because uploads files without error.
so question how make standalone application uses same version of dylib when ran qt creator?
option a) change lib path
- find application running using
ps ax | grep <appname> - do
otool -l <full-path-of-app>, givedylibapp resolves to - change
dylibin binary using install_name_tool. check answer more details pointdylibused qt creator.
option b) [un]/set rpath
another reason app using incorrect path rpath on dylib. can check rpath on dylib using otool -l <full-path-of-your-app>. rpath tells location binary first pick libraries from, if set in application can unset rpath set qt creator.
check man page of dyld find out how rpath work.
for example check rpath set on xcode app (your looking lc_rpath field in dylib section).
$ otool -l /applications/xcode.app/contents/macos/xcode load command 22 cmd lc_rpath cmdsize 48 path @executable_path/../frameworks (offset 12) load command 23 cmd lc_rpath cmdsize 56 path @executable_path/../sharedframeworks (offset 12) load command 24 cmd lc_rpath cmdsize 40 path @executable_path/../plugins (offset 12) to unset rpath use install_name_tool -delete_rpath <rpath-from-otool-l-output>
qt creator typically uses libraries shipped package , on target system these typically not present. better thing compile curl , ship application
Comments
Post a Comment