こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

xcodeのビルド時のエラー

ご覧頂き有難うございます。

現在、opencvを使ってiPhoneアプリの開発を試みているところです。
環境--------
Mac OS 10.6
X Code 3.2
iOS SDK 4.3
open cv 2.2
------------

http://iphone.moo.jp/app/
このサイトを参考にガウシアンフィルタのプログラムを
組んで実行すると以下のエラーが出ます。
-------------------------------------------------------------------------
Ld build/Debug-iphonesimulator/Test.app/Test normal i386
cd /Users/******/Desktop/Test
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/****/Desktop/Test/build/Debug-iphonesimulator -L/usr/local/lib -L/Users/keisukeyamamoto/Desktop/Test/../OPENCV -F/Users/*****/Desktop/Test/build/Debug-iphonesimulator -filelist /Users/*****/Desktop/Test/build/Test.build/Debug-iphonesimulator/Test.build/Objects-normal/i386/Test.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework Foundation -framework UIKit -framework CoreGraphics -o /Users/*****/Desktop/Test/build/Debug-iphonesimulator/Test.app/Test

ld: duplicate symbol _main in /Users/****/Desktop/Test/build/Test.build/Debug-iphonesimulator/Test.build/Objects-normal/i386/fastGaussian.o and /Users/*****/Desktop/Test/build/Test.build/Debug-iphonesimulator/Test.build/Objects-normal/i386/main.o
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit code 1

Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit code 1

-------------------------------------------------------------------------
ググッても中々解決しなかったので質問させていただきました。
何卒宜しくお願い致します。
初心者ですので足りない情報があるかと思いますが、補足が必要な場合は
すぐに対応します!

投稿日時 - 2011-07-14 15:13:26

QNo.6875380

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

エラー表示はこれからもずーーーっとお世話になります。
読んで理解するようにしましょう。

今回の肝は
> ld: duplicate symbol _main in /Users/****/Desktop/Test/build/Test.build/Debug-iphonesimulator/Test.build/Objects-normal/i386/fastGaussian.o and /Users/*****/Desktop/Test/build/Test.build/Debug-iphonesimulator/Test.build/Objects-normal/i386/main.o
ここです。

duplicate: 複製とか同じものとかの意味
symbol: プログラムでは、変数とか関数とかの「名前」を表わすもののこと。
途中の処理の関係で、実際のソース中とは違うこともあるけど、たいていは共通の部分があるので、そこから推測できる
_main: そのduplicate symbol の名前。 _ が頭についていたら、それを取ったのがだいたいソースでの名前になっている。ということで「main」

ということで。 「main」がfastGaussian.oとmain.oの両方にあります、というエラーです。

そのサイトにあるサンプルは、それ自体がメインプログラムになるように、main関数で定義されています。
それを、ひな型かなんかでもともとあるmain.mと一緒に使おうとしてませんか?

投稿日時 - 2011-07-14 18:33:12

お礼

回答ありがとうございます!!!

その通りでした。
エラーメッセージ見て理解するように心がけます!!
ありがとうございます。

投稿日時 - 2011-07-14 23:54:53

あなたにオススメの質問