3

iCarousel (https://github.com/nicklockwood/iCarousel) を使用しようとしており、プロジェクトに iCarousel.h と iCarousel.m を追加しました (Xcode 4.3.1 を使用)。

しかし、iCarousel のインスタンスを割り当てようとすると、リンカー エラーが発生します (iCarousel は UIView から継承されます)。

self.carousel = [[iCarousel alloc]initWithFrame:self.view.bounds];

完全なリンカ エラーは次のとおりです。

Ld "/Users/Me/Library/Developer/Xcode/DerivedData/IMS-eyffphshuxtblseccxpfluamxudo/Build/Products/Debug-iphonesimulator/MyApp.app/MyApp" normal i386
cd /Users/Me/Desktop/IMS/3.2
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk -L/Users/Me/Library/Developer/Xcode/DerivedData/IMS-eyffphshuxtblseccxpfluamxudo/Build/Products/Debug-iphonesimulator -F/Users/Me/Library/Developer/Xcode/DerivedData/IMS-eyffphshuxtblseccxpfluamxudo/Build/Products/Debug-iphonesimulator -filelist "/Users/Me/Library/Developer/Xcode/DerivedData/IMS-eyffphshuxtblseccxpfluamxudo/Build/Intermediates/IMS.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/MyApp.LinkFileList" -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=50100 -framework AssetsLibrary -framework SystemConfiguration -framework MessageUI -framework EventKit -framework MapKit -framework QuartzCore -framework AddressBook -framework UIKit -framework Foundation -framework CoreGraphics -o "/Users/Me/Library/Developer/Xcode/DerivedData/IMS-eyffphshuxtblseccxpfluamxudo/Build/Products/Debug-iphonesimulator/MyApp.app/MyApp"

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_iCarousel", referenced from:
objc-class-ref in IMSCarouselViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

iCarousel の使用を示すサンプル プロジェクトがあり、これらは正常にコンパイルされます。私のプロジェクトとサンプルプロジェクトの間にビルド設定の違いがあるに違いないと思いますが、それらが何であるかも、見つける方法もわかりません。リンカー メッセージを解読して問題を特定する方法はありますか?

(サンプル プロジェクトと同じフレームワーク/ライブラリを使用しています)

ティア

4

1 に答える 1

9

プロジェクトに .h & .m ファイルが追加されていても、コンパイルされていないようです。ファイル インスペクター (プロジェクトの左側) で iCarousel.m ファイルを選択し、ファイル インスペクターで [ターゲット メンバーシップ] 設定を確認します。

次のようになります (「iCarousel.m」のみが選択され、「AppDelegate.m」は選択されません)。

.m ファイルに対して [ターゲット メンバーシップ] が選択されていることを確認します

于 2012-05-29T00:42:42.877 に答える