apple mach-0 linker errorとは?エラーの原因と解決方法

このQ&Aのポイント
  • cocos2dでアプリを作成していたのですが、apple mach-0 linker errorがでてしまいました。実機では問題なく動作しますが、シミュレータで実行しようとすると以下のエラーが出ます。エラーを見てみてフレームワークを入れ直すなどしましたが効果ありませんでした。
  • フレームワークのパスやBuild Phasesのcompile sourceに足りないソースファイルがないかなどなんども確認しましたが、原因らしい箇所が見つかりませんでした。
  • ちなみに広告にアスタを利用していますが、アスタのフレームワークのパスが通っているのも確認済みです。
回答を見る
  • ベストアンサー

apple mach-0 linker error

cocos2dでアプリを作成していたのですが、apple mach-0 linker errorがでてしまいました。実機では問題なく動作しますが、シミュレータで実行しようとすると以下のエラーが出ます。エラーを見てみてフレームワークを入れ直すなどしましたが効果ありませんでした。 フレームワークのパスやBuild Phasesのcompile sourceに足りないソースファイルがないかなどなんども確認しましたが、原因らしい箇所が見つかりませんでした。 ちなみに広告にアスタを利用していますが、アスタのフレームワークのパスが通っているのも確認済みです。 Ld /Users/NYlon/Library/Developer/Xcode/DerivedData/cubeGame-cvpikdqyxcfshuckvzxbkvsljjcy/Build/Products/Debug-iphonesimulator/cubeGame\ iOS.app/cubeGame\ iOS normal x86_64 cd /Users/NYlon/Desktop/cubeGame/proj.ios_mac export IPHONEOS_DEPLOYMENT_TARGET=6.0 export 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 x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.3.sdk -L/Users/NYlon/Library/Developer/Xcode/DerivedData/cubeGame-cvpikdqyxcfshuckvzxbkvsljjcy/Build/Products/Debug-iphonesimulator -L/Users/NYlon/Desktop/cubeGame/proj.ios_mac -F/Users/NYlon/Library/Developer/Xcode/DerivedData/cubeGame-cvpikdqyxcfshuckvzxbkvsljjcy/Build/Products/Debug-iphonesimulator -F/Users/NYlon/Desktop/cubeGame/proj.ios_mac -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library -filelist /Users/NYlon/Library/Developer/Xcode/DerivedData/cubeGame-cvpikdqyxcfshuckvzxbkvsljjcy/Build/Intermediates/cubeGame.build/Debug-iphonesimulator/cubeGame\ iOS.build/Objects-normal/x86_64/cubeGame\ iOS.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -stdlib=libc++ -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.0 -framework MrdIconSDK -framework AdSupport -framework AudioToolbox -framework AVFoundation -framework CoreGraphics -framework Foundation -framework StoreKit -framework QuartzCore -framework Security -lcocos2d\ iOS -framework GLKit -framework SystemConfiguration -framework GameKit -framework iAd -framework UIKit -framework OpenGLES -framework CoreMotion -lgll -lz -Xlinker -dependency_info -Xlinker /Users/NYlon/Library/Developer/Xcode/DerivedData/cubeGame-cvpikdqyxcfshuckvzxbkvsljjcy/Build/Intermediates/cubeGame.build/Debug-iphonesimulator/cubeGame\ iOS.build/Objects-normal/x86_64/cubeGame\ iOS_dependency_info.dat -o /Users/NYlon/Library/Developer/Xcode/DerivedData/cubeGame-cvpikdqyxcfshuckvzxbkvsljjcy/Build/Products/Debug-iphonesimulator/cubeGame\ iOS.app/cubeGame\ iOS ld: library not found for -lgll clang: error: linker command failed with exit code 1 (use -v to see invocation) xcodeのバージョンは6.3.1、MacBookProのOSXYosemiteバージョンは10.10.3です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

No.1です。 追伸します。 「実機では問題なくてシミュレータでエラーが出る」ということ を見落としていたので、簡単なサンプルプロジェクトに libgll.dylibを指定したものをシミュレータで実行しようと したら、私の環境でも質問のエラーが再現しました。 たぶんlibgll.dylibは、実機用のライブラリしかないのだと思います。 私はcocos2dもアスタの広告も使ったことないのですが、 これら(あるいは他のフレームワークやライブラリ)を使うために libdll.dylibを指定するよう指示されているのであれば、 実機でのみ動作可能ということなのかもしれません。 そういう指示をした提供元に問い合わせて見るとよいと思います。 指示された覚えがないのに指定しているのであれば、 削除すればよいと思います。

nylonraw999
質問者

お礼

なかなかエラーが消えなかったのですがご指摘の通り指定のライブラリを削除することでエラーが消えました。ありがとうございます!

その他の回答 (1)

回答No.1

このエラーメッセージの一番重要な部分は > ld: library not found for -lgll です。 これより前の部分はリンカ(ld)実行コマンドのパラメータです。 このエラーメッセージは、libgllというライブラリが 見つからないと言っています。 cocos2dは使ったことないので、このライブラリが必要なものか どうか私にはわかりませんが、TARGETSのLinked Frameworks and Libraries の指定がどうなっているか確認してみてください。 私のXcode6.3.1の環境を見ると、libgll.dylibというライブラリが SDKに入っていて、Linked Frameworks and Librariesに追加して使える ようになっているようなので、必要なものであれば、一旦ライブラリの 指定を削除して再度指定し直す等すれば、もしかするとエラー解消するかも しれません。 もし必要なもので、指定してもエラーになるのであれば、Xcodeを インストールし直してみた方がよいかもしれません。 もし必要なものかどうかわからなければ、cocos2dを使った簡単な サンプルプロジェクトをビルドして、libgll.dylibの指定がどうなっているか 比較確認してみるとよいと思います。

関連するQ&A

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

    • 締切済み
    • Mac
  • unity xcode

    Unity で作成したプログラムを Xcode でビルドを通そうとしたら clang: error:no such file or directory: 'aaaa' Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang failed with exit code 1 と言うエラーが言われます。解決方法を知ってる方いましたらご教授お願いしたいと思っております。 よろしくお願いします。

  • MAC OS X) JREのパスが知りたい

    とある設定ファイルに、 <full path to your jre>\javaw.exe を指定しなければならないのですが、JRE(javaw.exe)のフルパスの確認方法が判りません。 JDKが入っているので、自分の認識ではJREも一緒に入っているものと思っています。 sudo find / -name javaw* | grep javaw で検索してみたところ、以下のようにjavaw.exeが見つかりませんでした。 find: /dev/fd/3: Not a directory find: /dev/fd/4: Not a directory /Applications/Xcode.app/Contents/Developer/Makefiles/pb_makefiles/javawrapper.make /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Documentation/man/javaws.1 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/share/man/man1/javaws.1 /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/javaws /System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Documentation/man/javaws.1 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/javaws /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/javaws /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javaws.jar /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/man/javaws.1 /System/Library/Java/Support/Deploy.bundle/Contents/Home/bin/javaws /System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/javaws.jar /System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/security/javaws.policy /System/Library/Java/Support/Deploy.bundle/Contents/MacOS/javaws /System/Library/Java/Support/Deploy.bundle/Contents/Resources/Java/javaws.jar /usr/bin/javaws /usr/share/man/man1/javaws.1 javaw.exeが無いということは、JREが入って いないという事なのでしょうか? どなたかお詳しい方いらっしゃいましたら、ご教授の程宜しくお願い致します。

    • ベストアンサー
    • Java
  • MavericksでXcode4.6.3が起動しな

    Mac-mini でiOSアプリの開発をしています。 先日まで10.8(Mountain Lion)で、Xcode4.6.3とXcode5.1.1の両方を使っていました。 Xcode4.6.3のほうを、/Applications/Xcode4.6.3.app という名前にすることで、使い分けが出来ていました。 先日10.9(Mavericks)にバージョンアップと、Xcode6-betaの試用を行なったところ、Xcode5.1.1のほうは問題なく起動するのですが、Xcode4.6.3が起動しなくなってしまいました。 起動時のプロジェクトを選択する画面が表示されるのですが、すぐにクラッシュしてしまいます。[レポート]をクリックしてクラッシュの内容を見てみると、 Error getting value for key 'delegateClass' of extension 'Xcode.IDEiPhoneOrganizer.MenuDefinition.Screenshots' in plug-in 'com.apple.dt.IDE.IDEiPhoneSupport' ということで、IDEiPhoneSupport.plugin が読み込めない状態になっているようです。 ターミナルで見てみると、クラッシュレポートの中に書かれているIDEiPhoneSupport.plugin のパスは確かに存在していますし、特に変わった様子はありませんでした。 IDEiPhoneSupport.plugin について検索したところ、iTunesがインストールされていなかったり、インストールする順番によっては、このエラーが発生することがあるということで、iTunesの再インストールが紹介されていました。iTunesHelperを終了させてから、 cd /Applications sudo rm -rf iTunes.app でiTunesを削除して、最新のdmgをダウンロードしてインストールしましたが、状況は変わりませんでした。 あと、プリファレンスのパスが分かったので、下記の4つを削除してみました、それでも変わりませんでした。 ~/Library/Preferences/com.apple.Xcode.plist ~/Library/Preferences/com.apple.dt.Xcode.plist ~/Library/Caches/com.apple.dt.Xcode/ ~/Library/Saved Application State/com.apple.dt.Xcode.savedstate/ あと、既存のXcode4.6.3を削除して、DevCenterからダウンロードし直したものをインストールしてみましたが、変わりませんでした。 ググった限りでは、MavericksでXcode4.6.3が使えないという情報は無かったので、何かを直せば起動するのではないかと思っているのですが、どうにも起動しないので困っています。何か情報はありますでしょうか。 なお、クラッシュレポートのヘッダ部分は下記の通りです。 Process: Xcode [1760] Path: /Applications/Xcode.app/Contents/MacOS/Xcode Identifier: com.apple.dt.Xcode Version: 4.6.3 (2068) Build Info: IDEApplication-2068000000000000~3 Code Type: X86-64 (Native) Parent Process: launchd [165] Responsible: Xcode [1760] User ID: 501 Date/Time: 2014-06-13 17:08:14.670 +0900 OS Version: Mac OS X 10.9.3 (13D65) Report Version: 11 Anonymous UUID: 333506D4-41D3-A4B4-9DCC-AF9726BED13D Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Application Specific Information: ProductBuildVersion: 4H1503 UNCAUGHT EXCEPTION (NSInternalInconsistencyException): Error getting value for key 'delegateClass' of extension 'Xcode.IDEiPhoneOrganizer.MenuDefinition.Screenshots' in plug-in 'com.apple.dt.IDE.IDEiPhoneSupport' UserInfo: { NSUnderlyingError = "Error Domain=DVTPlugInErrorDomain Code=2 \"Loading a plug-in failed.\" UserInfo=0x4015ffe60 {DVTPlugInIdentifierErrorKey=com.apple.dt.IDE.IDEiPhoneSupport, DVTPlugInExecutablePathErrorKey=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/IDEiPhoneSupport.ideplugin/Contents/MacOS/IDEiPhoneSupport, NSLocalizedRecoverySuggestion=The plug-in or one of its prerequisite plug-ins may be missing or damaged and may need to be reinstalled., NSLocalizedDescription=Loading a plug-in failed., NSFilePath=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/IDEiPhoneSupport.ideplugin, NSLocalizedFailureReason=The plug-in \U201ccom.apple.dt.IDE.IDEiPhoneSupport\U201d at path \U201c/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/IDEiPhoneSupport.ideplugin\U201d could not be loaded. The plug-in or one of its prerequisite plug-ins may be missing or damaged., NSUnderlyingError=0x4002a1a20 \"The bundle \U201cIDEiPhoneSupport\U201d couldn\U2019t be loaded because it is damaged or missing necessary resources.\"}"; } Hints: None

  • icu ビルドエラー

    いつもお世話になっております。 ICU(International Components for Unicode) http://www-01.ibm.com/software/globalization/icu/index.html を利用しようと、プログラムをビルドしたのですが、 library -lCrun: not found となりビルドできませんでした。 g++ -c -g -MMD -MP -MF build/Debug/GNU-Solaris-x86/main.o.d -o build/Debug/GNU-Solaris-x86/main.o main.cpp mkdir -p dist/Debug/GNU-Solaris-x86 g++ -o dist/Debug/GNU-Solaris-x86/icuapp2 build/Debug/GNU-Solaris-x86/main.o `/usr/bin/icu-config --ldflags` ld: fatal: library -lCrun: not found ld: fatal: file processing errors. No output written to dist/Debug/GNU-Solaris-x86/icuapp2 collect2: ld returned 1 exit status gmake[2]: *** [dist/Debug/GNU-Solaris-x86/icuapp2] エラー 1 gmake[2]: ディレクトリ `/home/a/NetBeansProjects/icuapp2' から出ます gmake[1]: *** [.build-conf] エラー 2 gmake[1]: ディレクトリ `/home/a/NetBeansProjects/icuapp2' から出ます gmake: *** [.build-impl] エラー 2 /usr/lib/libCrun.so.1 というファイルはあるのですが、何か不足があるのでしょうか。 どなたかご教授よろしくお願いいたします。

  • iPhoneアプリのプッシュ通知機能でエラーが発生

    iPhoneアプリ開発初心者です。 初めてのアプリ開発で、アプリの中にプッシュ通知機能を入れたいと思い、 試行錯誤しております。 その中で、プッシュ通知の許可画面は出るのですが、 その後のデバイストークン取得時、 didFailToRegisterForRemoteNotificationsWithErrorメソッドに遷移し、 「Appの有効なaps-environmentエンタイトルメント文字列が見つかりません」 というエラーが出てきてしまいます。 Apple Developerにて、専用のAPP IDを作成する際、 Push Notifications設定でDevelopmentは「Enabled」になっており、 このAPP IDを使って、Developer用のプロビジョニングプロファイルを作成いたしました。 (Dictributionの設定は行っていないので、Configurableのままです) ステータスがActiveなのを確認してからこのファイルをダウンロードし、 ダブルクリックしてキーチェーンアクセスに登録。 Xcode側では、該当プロジェクトのBuild SettingsのCode Signing Identityで Debugの設定を、選択できる部分を左から 「Any iOS SDK」、「iOS Developer」に設定しています。 ネットで書かれていた通りの設定をしたと思っているのですが、 何度行っても上記のエラーが出てきてしまいます。 (参考URL:http://www.lancork.net/2013/08/how-to-ios-push-first/) ネットで調べたところ、App ID作成時、Push Notifications設定が 行われていない、というのが原因だと書かれていたのですが、 今回のケースだと、きちんと設定が行われている(はず)です。 (参考URL:http://aroundapps.seesaa.net/article/231192401.html) Xcode側の設定が悪いのか、 App IDの設定がおかしいのか、 プロビジョニングプロファイルの設定がおかしいのか、 まったく分からずお手上げ状態となってしまいました。 申し訳ないのですが、どなたか教えていただけないでしょうか。 よろしくお願いいたします。

  • ios developer program

    iOS Developer Program に登録すると、 ・Xcodeをダウンロードできるようになる ・App storeから配布することができるようになる それ以外に重要なことは、あります?

  • com.apple.SecurityServer

    Jun 8 20:23:31 ****** com.apple.SecurityServer: Succeeded authorizing right system.preferences by process /System/Library/PrivateFrameworks/NetworkConfig.framework/Resources/NetCfgTool for authorization created by /Applications/System Preferences.app. これはMacのコンソールのsecure.logにあったものなのですが、このcom.apple.SecurityServer とは何をするサーバなのでしょうか? インターネットに接続すると自動的にできるサーバーでしょうか?

    • ベストアンサー
    • Mac
  • 脱獄アプリインストールでエラーがおきます・・・

    脱獄初心者です。 ios5.0.1のtouchです。 脱獄アプリをCydiaからインストールしていると、 Sub-process/usr/bin/dpkg returned an error code (1) と、 trying to overwrite `/Applications/Installous.app/us.hackulo.filehosts.plist',which is also in package us.hackulo.resources と出て、エラーが起きてインストールできません。 なにか解決方法があったら教えていただけませんか? 回答宜しくお願いします。

  • PHPからシェルコマンドを実行するとエラーが出る。

    皆様 いつもお世話になります。 早速ですがご質問させて頂きます。 PHPからPhantomjsというサーバーサイドでjavascriptをレンダリングできるツールを実行させたいと思い挑戦していますが、エラーがでてしまい上手くできません。 方法は以下の通りです。 【PHP】 shell_exec('/usr/local/bin/phantomjs /Applications/MAMP/htdocs/WebViewInterface/www/js/実行したいファイル.js 2>&1'); 【エラー内容】 dyld: Symbol not found: __cg_jpeg_resync_to_restart Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib Expected in: /Applications/MAMP/Library/lib/libJPEG.dylib in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib ターミナル上では実行が確認できます。 以前、node.jsとphandomjsを一緒に利用としようと思い、npmコマンドで今使っている者とは別方法でphantomjsを導入したのですが、それが影響(なにかしらバッティングしている??)しているのでしょうか?? 調べても全く分からず困っています。 お詳しい方ご教授宜しくお願い致します! 開発環境: MacOSX 10.6.8 PHP 5.1.2 Phantomjs 1.9.1

専門家に質問してみよう