Dominique, Normally with a Carbon app you won't be linking to X11 yet that's what your app is doing. Is SDL an X11-based framework?
The -L switch doesn't look right for a framework. I think -L is normally used with standalone libraries, not frameworks. What about omitting that and adding another -k-framework in front of -ksdl? Did you run with the -Cn command line switch to see what the linker is actually getting? Thanks. -Phil -----Original Message----- From: Dominique Louis [mailto:[EMAIL PROTECTED] Sent: Thursday, November 08, 2007 6:12 PM To: [email protected] Subject: Re: [lazarus] Using SDL.framework within Lazarus project on Mac OS X Hi Philip, I'm still having this framework issue. When I run the otool -L <myapp> command I get /System/Library/Carbon.framework/Versions/A/Carbon ( Compatibility version 2.0.0, current version 128.0.0) /usr/lib/libz.1.dylib ( compatibility version 1.0.0, current version 1.2.3) /usr/lib/libSystem.B.dylib ( compatibility version 1.0.0, current version 88.3.9) /usr/lib/libX11.6.dylib ( compatibility version 6.2.0, current version 6.2.0) Does that look right? In the lazarus compiler options under the linking tab I have -L/Library/Frameworks/SDL.framework -framework carbon sdl and in the Show Options screen this translates to... -k-L/Library/Frameworks/SDL.framework -k-framework -kcarbon -ksdl Which I think all looks fine, but I still get the following error... /usr/bin/ld: can't open: sdl ( No such file or directory, errno = 2) Error:Error while linking This is definitely the location of the framework because I can create an XCode FreePascal project and that correctly links to SDL.framework in that directory and I can see a 3D OpenGL spinning cube when it runs. Thanks, Dominique. Hess, Philip J wrote: > Dominique, > > I don't believe that's the Carbon framework that your apps are using. > > Use otool -L against any app compiled against the Carbon framework to > see the framework's location. > > Try compiling with the -Cn switch, then look at the link.res text file > generated. This contains the actual switches that are being passed to > the linker. > > Thanks. > > -Phil > > > -----Original Message----- > From: Dominique Louis [mailto:[EMAIL PROTECTED] > Sent: Thursday, November 01, 2007 11:29 AM > To: [email protected] > Subject: Re: [lazarus] Using SDL.framework within Lazarus project on Mac > OS X > > Hi Philip, > I've just been re-reading your message. So when using frameworks, > there is no need to specify a library name, because the linker resolves > this automagically? > > just for clarification the SDL.framework is located @ > /Library/Frameworks/SDL.framework. > > While I notice that Carbon.framework is located @ > /Developers/SDKs/MacOS10.4u.sdk/System/Library/Frameworks/Carbon.framewo > rk > > I even tried adding /Library/Frameworks/ to -Fl in the Libraries field > on the Path tab in case that would help, but that did not work either. I > still get the "Can't open : sdl ( No such file or directory, errorno = > 2)". > > So the compiler recognises that I'm passing a framework via the command > line, but it just can't find it. Is there something else I need to do to > use 3rd Party frameworks? > > Dominique. > > Hess, Philip J wrote: >> Dominique, >> >> Did you put the sdl.framework bundle (folder) somewhere that the > linker >> can find it? Typically this would be in the Library/Frameworks folder. >> >> If the linker can find the framework it should be able to find any >> externally declared functions in your program. You shouldn't need any >> link directives in your source either. >> >> Note how it's done in FPCMacOSAll.pas: >> >> function sqrt(x: double_t): double_t; external name '_sqrt'; >> >> When you include -framework carbon the linker is able to find the >> "_sqrt" function in the Carbon framework's library. >> >> Thanks. >> >> -Phil >> >> >> >> -----Original Message----- >> From: Dominique Louis [mailto:[EMAIL PROTECTED] >> Sent: Tuesday, October 30, 2007 7:53 AM >> To: [email protected] >> Subject: RE: [lazarus] Using SDL.framework within Lazaru project >> >> Hi Philip, >> Thanks for pointing this out. On the Mac that option was being >> hidden due to the dialog size, so I could not see the area where I >> needed to put the framework. This is now entered, but I now get a >> "Unable to find sdl" error message when it tris to link to the >> framework. Is there something else I need to do? Also, if I have >> sdl.pas in the project file, it complains that it cant link to >> -lSDL-1.2.0 . >> >> If it finds the framework, does it still need to link to it via -l? >> >> >> Thanks, >> >> >> Dominique. >> >> >> Quoting "Hess, Philip J" <[EMAIL PROTECTED]>: >> >>> Dominique, >>> >>> On the Compiler Options tab, check the "Pass Options To The Linker" >> box >>> and enter this in text box: -framework sdl >>> >>> This will be passed to FPC as -k'-framework' -k'sdl', which then >> passes >>> the switches on to the linker. >>> >>> Thanks. >>> >>> -Phil >>> >>> >>> -----Original Message----- >>> From: Dominique Louis [mailto:[EMAIL PROTECTED] >>> Sent: Monday, October 29, 2007 9:38 AM >>> To: [email protected] >>> Subject: [lazarus] Using SDL.framework within Lazaru project >>> >>> Hi all, >>> What is the correct way to use an *.framework within a Lazarus >>> project? >>> >>> I can get SDL.framework working with XCode, but don't know where put >>> the -kSDL line to get it to pull in the framework. >>> >>> Thanks, >>> >>> >>> Dominique. _________________________________________________________________ To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives _________________________________________________________________ To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
