列挙タイプによる1 duplicate symbol for architecture x 86_64エラー
1230 ワード
エラーは次のとおりです.
この問題が奇抜な点は、
元凶はC言語の列挙タイプ定義方式である.
Objtcttive-Cの列挙タイプスタイルに変更すればよい
実はC言語のスタイルの前に直接typedefを付けてもいいのですが、お勧めしないで、おとなしくOCの定義通りにしましょう.
午後1時間以上無駄にした.XD
duplicate symbol _iphoneType in:
/Users/midmirror/Library/Developer/Xcode/DerivedData/PRTPrinter-eixyioynyswgruahtmzninftkbmm/Build/Intermediates/PRTPrinter.build/Debug-iphonesimulator/PRTPrinter.build/Objects-normal/x86_64/PRTScreenFit.o
/Users/midmirror/Library/Developer/Xcode/DerivedData/PRTPrinter-eixyioynyswgruahtmzninftkbmm/Build/Intermediates/PRTPrinter.build/Debug-iphonesimulator/PRTPrinter.build/Objects-normal/x86_64/PRTHomeVC.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
この問題が奇抜な点は、
を使っているが、
を使っていることだ.Googleは半日も方法を見つけられなかった.ここに記録する.元凶はC言語の列挙タイプ定義方式である.
//
enum iphoneType{
iphone4s = 320*480,
iphone5s = 320*568,
iphone6 = 375*667,
iphone6p = 414*736,
iPad = 1024*768
}iphoneType;
Objtcttive-Cの列挙タイプスタイルに変更すればよい
//
typedef NS_ENUM(NSInteger, iphoneType) {
iphone4s = 320*480,
iphone5s = 320*568,
iphone6 = 375*667,
iphone6p = 414*736,
iPad = 1024*768
};
実はC言語のスタイルの前に直接typedefを付けてもいいのですが、お勧めしないで、おとなしくOCの定義通りにしましょう.
午後1時間以上無駄にした.XD