• 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
Ld error: symbols in framework not found. How to troubleshoot?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Ld error: symbols in framework not found. How to troubleshoot?


  • Subject: Ld error: symbols in framework not found. How to troubleshoot?
  • From: Jerry Krinock <email@hidden>
  • Date: Mon, 10 Mar 2008 18:42:57 -0700

I'm trying to build a bundle that links against several frameworks. It works fine for configuration Debug, but for configuration Release it fails to find symbols in on of my frameworks, for both architectures i386 and ppc. I get these same results when copying the Ld command from the Build Transcript and running from the command line. That is, if I change

-F/path/to/my/Builds/Release

to

-F/path/to/my/Builds/Debug

it works fine.

(The whole command is shown below [1]).

Now, the problem framework, SSAlert, does exist at both paths, so this leads me to believe that the version of SSAlert.framework in the Release path is defective in some way.

How can I troubleshoot this? Is there any command which will look for the symbols in the same way that Ld does and give me more info?

I've tried otool, but don't see any problem. From my Builds directory I've run:

otool -ov Release/SSAlert.framework/Versions/A/SSAlert
otool -ov Debug/SSAlert.framework/Versions/A/SSAlert

and in both cases I get 876 lines of output. The only differences are (a) the values of the addresses and (b) the "Debug" otool output has - [ClassName methodName] printed on the method_imp line, although I believe this is insignificant. The "Release" one is stripped, but I've seen this in working "stripped" frameworks before. The extra text is redundant since the class and method names are printed elsewhere. "Objective-C class and method names are never really stripped."

The sizes of the two framework executables are Debug: 96.8 KB and Release: 138.1 KB. I was thinking that Release should be double Debug due to fattening i386+ppc, but I have other working framework sets that also have less than 2:1 size ratio.

Thanks,

Jerry Krinock

[1] Here is the command that fails. (I've added some newlines to make it readable.)

/Developer/usr/bin/gcc-4.0 -o /private/tmp/BmTiger.build/Release/ BmTiger.build/Objects-normal/i386/BmTiger
-L/Users/jk/Documents/Programming/Builds/Release
-F/Users/jk/Documents/Programming/Builds/Release <-- works if I change to "Debug"
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Release
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Debug
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Debug
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Release
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Debug
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Release
-filelist /private/tmp/BmTiger.build/Release/BmTiger.build/Objects- normal/i386/BmTiger.LinkFileList -framework Cocoa
-framework SSApp
-framework BmStuff
-framework SSSQLiter
-framework SSAlert
-arch i386
-bundle
-mmacosx-version-min=10.4
-bundle_loader /Users/jk/Documents/Programming/Builds/ ReleaseUnstripped/Bookdog.app/Contents/MacOS/Bookdog -isysroot / Developer/SDKs/MacOSX10.4u.sdk


Bonus Question:

Why does Xcode generate the following lines in the command?
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Release
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Debug
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Debug
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Release
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Debug
-F/Users/jk/Documents/Programming/Projects/Bookdog/BmTiger/../../../ Builds/Release


If you factor out the /../../.., you get, repeated 3 times,
-F/Users/jk/Documents/Programming/Builds/Release
-F/Users/jk/Documents/Programming/Builds/Debug

one of those is the same as the first -F shown above in the complete command. They are ignored since all frameworks are found in the first -F option which precedes these.

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Ld error: symbols in framework not found. How to troubleshoot?
      • From: Jerry Krinock <email@hidden>
  • Prev by Date: Subversion and nib files workaround?
  • Next by Date: Re: Linking to third-party Frameworks and dylibs from a plug-in
  • Previous by thread: Re: Subversion and nib files workaround?
  • Next by thread: Re: Ld error: symbols in framework not found. How to troubleshoot?
  • Index(es):
    • Date
    • Thread