質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

解決済

1回答

2395閲覧

Xcodeでclang: error: linker command failed with exit code 1というエラーが出てビルドできない

退会済みユーザー

退会済みユーザー

総合スコア0

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2016/12/12 09:15

編集2016/12/14 02:05

MacBookAir
Xcode8.1
MacOS Sierra 10.12

で開発しています。

あるアプリを開発しています。 CocoaTouchClassでヘッダーと実装ファイルを追加しました。

実装ファイル(m)

#import "ViewVoiceNameController.h" // Delegate画面遷移用 #import "AppDelegate.h" // delegateデータを送る準備 AppDelegate *appDelegate; @interface ViewVoiceNameController () @end @implementation ViewVoiceNameController - (void)viewDidLoad { [super viewDidLoad]; // delegateデータを送る準備 appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; // Do any additional setup after loading the view. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ //textFieldを閉じる - (IBAction)textFieldEnd:(UITapGestureRecognizer *)sender { [self.view endEditing:YES]; } //テキスト保存用ボタンbtn1-24 - (IBAction)btn1:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str1 = _tf1.text; } - (IBAction)btn2:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str2 = _tf2.text; } - (IBAction)btn3:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str3 = _tf3.text; } - (IBAction)btn4:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str4 = _tf4.text; } - (IBAction)btn5:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str5 = _tf5.text; } - (IBAction)btn6:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str6 = _tf6.text; } - (IBAction)btn7:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str7 = _tf7.text; } - (IBAction)btn8:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str8 = _tf8.text; } - (IBAction)btn9:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str9 = _tf9.text; } - (IBAction)btn10:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str10 = _tf10.text; } - (IBAction)btn11:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str11 = _tf11.text; } - (IBAction)btn12:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str12 = _tf12.text; } - (IBAction)btn13:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str13 = _tf13.text; } - (IBAction)btn14:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str14 = _tf14.text; } - (IBAction)btn15:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str15 = _tf15.text; } - (IBAction)btn16:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str16 = _tf16.text; } - (IBAction)btn17:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str17 = _tf17.text; } - (IBAction)btn18:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str18 = _tf18.text; } - (IBAction)btn19:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str19 = _tf19.text; } - (IBAction)btn20:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str20 = _tf20.text; } - (IBAction)btn21:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str21 = _tf21.text; } - (IBAction)btn22:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str22 = _tf22.text; } - (IBAction)btn23:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str23 = _tf23.text; } - (IBAction)btn24:(id)sender { //テキストフィールドに入力した文字列を保存 appDelegate.name_keep_str24 = _tf24.text; } @end

ヘッダー(h)

#import <UIKit/UIKit.h> @interface ViewVoiceNameController : UIViewController { } //textFieldを閉じる - (IBAction)textFieldEnd:(UITapGestureRecognizer *)sender; //btn1-24 - (IBAction)btn1:(id)sender; - (IBAction)btn2:(id)sender; - (IBAction)btn3:(id)sender; - (IBAction)btn4:(id)sender; - (IBAction)btn5:(id)sender; - (IBAction)btn6:(id)sender; - (IBAction)btn7:(id)sender; - (IBAction)btn8:(id)sender; - (IBAction)btn9:(id)sender; - (IBAction)btn10:(id)sender; - (IBAction)btn11:(id)sender; - (IBAction)btn12:(id)sender; - (IBAction)btn13:(id)sender; - (IBAction)btn14:(id)sender; - (IBAction)btn15:(id)sender; - (IBAction)btn16:(id)sender; - (IBAction)btn17:(id)sender; - (IBAction)btn18:(id)sender; - (IBAction)btn19:(id)sender; - (IBAction)btn20:(id)sender; - (IBAction)btn21:(id)sender; - (IBAction)btn22:(id)sender; - (IBAction)btn23:(id)sender; - (IBAction)btn24:(id)sender; //textfield1-24 @property (weak, nonatomic) IBOutlet UITextField *tf1; @property (weak, nonatomic) IBOutlet UITextField *tf2; @property (weak, nonatomic) IBOutlet UITextField *tf3; @property (weak, nonatomic) IBOutlet UITextField *tf4; @property (weak, nonatomic) IBOutlet UITextField *tf5; @property (weak, nonatomic) IBOutlet UITextField *tf6; @property (weak, nonatomic) IBOutlet UITextField *tf7; @property (weak, nonatomic) IBOutlet UITextField *tf8; @property (weak, nonatomic) IBOutlet UITextField *tf9; @property (weak, nonatomic) IBOutlet UITextField *tf10; @property (weak, nonatomic) IBOutlet UITextField *tf11; @property (weak, nonatomic) IBOutlet UITextField *tf12; @property (weak, nonatomic) IBOutlet UITextField *tf13; @property (weak, nonatomic) IBOutlet UITextField *tf14; @property (weak, nonatomic) IBOutlet UITextField *tf15; @property (weak, nonatomic) IBOutlet UITextField *tf16; @property (weak, nonatomic) IBOutlet UITextField *tf17; @property (weak, nonatomic) IBOutlet UITextField *tf18; @property (weak, nonatomic) IBOutlet UITextField *tf19; @property (weak, nonatomic) IBOutlet UITextField *tf20; @property (weak, nonatomic) IBOutlet UITextField *tf21; @property (weak, nonatomic) IBOutlet UITextField *tf22; @property (weak, nonatomic) IBOutlet UITextField *tf23; @property (weak, nonatomic) IBOutlet UITextField *tf24; @end

このように記述してビルドすると下記のようなエラーが出てシミュレーターが起動しません。

Ld /Users/XXXXXXXX/Library/Developer/Xcode/DerivedData/SeBtn-ajkdagdflodqbeegklyenphwnhqn/Build/Products/Debug-iphonesimulator/SeBtn.app/SeBtn normal x86_64
cd /Users/XXXXXXXX/Desktop/AppData/SeBtn
export IPHONEOS_DEPLOYMENT_TARGET=9.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.1.sdk -L/Users/XXXXXXXX/Library/Developer/Xcode/DerivedData/SeBtn-ajkdagdflodqbeegklyenphwnhqn/Build/Products/Debug-iphonesimulator -F/Users/XXXXXXXX/Library/Developer/Xcode/DerivedData/SeBtn-ajkdagdflodqbeegklyenphwnhqn/Build/Products/Debug-iphonesimulator -filelist /Users/XXXXXXXX/Library/Developer/Xcode/DerivedData/SeBtn-ajkdagdflodqbeegklyenphwnhqn/Build/Intermediates/SeBtn.build/Debug-iphonesimulator/SeBtn.build/Objects-normal/x86_64/SeBtn.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=9.0 -Xlinker -object_path_lto -Xlinker /Users/XXXXXXXX/Library/Developer/Xcode/DerivedData/SeBtn-ajkdagdflodqbeegklyenphwnhqn/Build/Intermediates/SeBtn.build/Debug-iphonesimulator/SeBtn.build/Objects-normal/x86_64/SeBtn_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -dependency_info -Xlinker /Users/XXXXXXXX/Library/Developer/Xcode/DerivedData/SeBtn-ajkdagdflodqbeegklyenphwnhqn/Build/Intermediates/SeBtn.build/Debug-iphonesimulator/SeBtn.build/Objects-normal/x86_64/SeBtn_dependency_info.dat -o /Users/XXXXXXXX/Library/Developer/Xcode/DerivedData/SeBtn-ajkdagdflodqbeegklyenphwnhqn/Build/Products/Debug-iphonesimulator/SeBtn.app/SeBtn

duplicate symbol _appDelegate in:
/Users/XXXXXXXX/Library/Developer/Xcode/DerivedData/SeBtn-ajkdagdflodqbeegklyenphwnhqn/Build/Intermediates/SeBtn.build/Debug-iphonesimulator/SeBtn.build/Objects-normal/x86_64/ViewController.o
/Users/XXXXXXXX/Library/Developer/Xcode/DerivedData/SeBtn-ajkdagdflodqbeegklyenphwnhqn/Build/Intermediates/SeBtn.build/Debug-iphonesimulator/SeBtn.build/Objects-normal/x86_64/ViewVoiceNameController.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

色々ネットで調べたのですが様々な解決方法があってどれが正しいのか、自分のエラーにあってるのか
わからずこちらで解決方法を質問いたします。アドバイス頂けると幸いです。

フレームワークの削除であったり、追加したヘッダと実装ファイルを削除して追加し直したりなどの方法がネット上にあったので試してみましたが、どれもうまくいきませんでした。

ヒントだけでも構いません。何かご指導下抱けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

duplicate symbol _appDelegate in:
...(省略).../ViewController.o
...(省略).../ViewVoiceNameController.o

appDelegateというグローバル変数が二箇所で宣言されているようです。
そのソース内でしか使用しないのであればグローバルにする必要はありません。(というか、すべきではありません)

objective

1@interface ViewVoiceNameController () 2{ 3 // delegateデータを送る準備 4 AppDelegate *appDelegate; 5} 6@end

として下さい。(ViewController.mも同様に)

投稿2016/12/14 02:41

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問