• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Problem having a framework working in one of my targets (a screensaver)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem having a framework working in one of my targets (a screensaver)


  • Subject: Re: Problem having a framework working in one of my targets (a screensaver)
  • From: Roland King <email@hidden>
  • Date: Fri, 03 Jul 2015 21:57:23 +0800

Downloading the zip file referenced earlier and using a simple main.c

	$ clang -x c -o main.o -c main.c
	$ clang main.o -o main
	$ otool -L main
	main:
		/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

adding the framework right from the unzipped zip and then otool’ing it

	$ clang main.o -F ~/Downloads/Mac-Framework-master -framework Paddle -o main
	$ otool -L main
	main:
		@executable_path/../Frameworks/Paddle.framework/Versions/A/Paddle (compatibility version 1.0.0, current version 1.0.0)
		/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

That’s that @executable_path from the library, using otool -D on it ...

	$ otool -D ~/Downloads/Mac-Framework-master/Paddle.framework/Paddle
	/Users/rols/Downloads/Mac-Framework-master/Paddle.framework/Paddle:
	@executable_path/../Frameworks/Paddle.framework/Versions/A/Paddle

now update it and check it again

	$ install_name_tool -id @rpath/bananas/are/tasty ~/Downloads/Mac-Framework-master/Paddle.framework/Paddle

	$ otool -D ~/Downloads/Mac-Framework-master/Paddle.framework/Paddle
	/Users/rols/Downloads/Mac-Framework-master/Paddle.framework/Paddle:
	@rpath/bananas/are/tasty

and re-link main and then otool it again

	$ clang main.o -F ~/Downloads/Mac-Framework-master -framework Paddle -o main
	$ otool -L main
	main:
		@rpath/bananas/are/tasty (compatibility version 1.0.0, current version 1.0.0)
		/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

That’s where it comes from - that’s how you can change it. Don’t know what you’re seeing.

> On 3 Jul 2015, at 21:19, Kevin Meaney <email@hidden> wrote:
>
>>
>> I don’t know what the executable_path is for a screensaver, you’d think it was very much the same thing. So first simplest option is to work out what that is and then just put the library at the place it expects to be, @executable_path/../Frameworks/<lots of garbage>. As long as that’s within your bundle somewhere, trivial to do. You can even put it somewhere else and put a symlink in the bundle.
>
> The @executable_path for the Screen saver will be the path to the executable process that loads the OP’s screen saver plugin. in this case ScreenSaverEngine.
>
>>
>> If you want to change it to something like @rpath/whatever then
>>
>> 	install_name_tool -id @rpath/whatever <object>
>
> This is where I get confused. In my project not the original posters my framework has Installation Directory set to @rpath and everything works as I need it to thanks to that Mike Ash article. But if I do otool -D on the framework then I see @executable_path … etc. Making me conclude the rpath information was stored separately in the binary to the install name so my thinking was that modifying the install name wouldn’t help.
>
> Kevin
>


_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: Problem having a framework working in one of my targets (a screensaver)
      • From: Juanjo Conti <email@hidden>
References: 
 >Problem having a framework working in one of my targets (a screensaver) (From: Juanjo Conti <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Juanjo Conti <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Kevin Meaney <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Juanjo Conti <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Kevin Meaney <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Juanjo Conti <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Roland King <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Kevin Meaney <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Roland King <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Juanjo Conti <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Roland King <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Kevin Meaney <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Juanjo Conti <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Roland King <email@hidden>)
 >Re: Problem having a framework working in one of my targets (a screensaver) (From: Kevin Meaney <email@hidden>)

  • Prev by Date: Re: Problem having a framework working in one of my targets (a screensaver)
  • Next by Date: Re: Problem having a framework working in one of my targets (a screensaver)
  • Previous by thread: Re: Problem having a framework working in one of my targets (a screensaver)
  • Next by thread: Re: Problem having a framework working in one of my targets (a screensaver)
  • Index(es):
    • Date
    • Thread