1

picocプロジェクトを xcodeにコンパイルしようとしています。外部ライブラリはなく、コマンド ライン ツールの C プロジェクトにインポートした .c および .h ファイルだけです。

すべての .c ファイルは問題なくコンパイルされますが、XCode がリンクしているときに次のメッセージが表示されます。

    Undefined symbols for architecture x86_64:
  "_BasicIOInit", referenced from:
      _PicocInitialise in platform.o
  "_CStdOut", referenced from:
      _PrintSourceTextErrorLine in platform.o
      _PlatformVPrintf in platform.o
  "_MathFunctions", referenced from:
      _IncludeInit in include.o
  "_MathSetupFunc", referenced from:
      _IncludeInit in include.o
  "_PicocPlatformScanFile", referenced from:
      _IncludeFile in include.o
  ...

エラーを与えるコマンドは次のとおりです。

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ MacOSX10.8.sdk -L/Users/laurent/Library/Developer/Xcode/DerivedData/Pico-dhfwbamkhiyphjcwuncbwjsyjlax/Build/Products/Debug -F/Users/laurent/Library/Developer/Xcode/DerivedData/Pico-dhfwbamkhiyphjcwuncbwjsyjlax/Build/ Products/Debug -filelist /Users/laurent/Library/Developer/Xcode/DerivedData/Pico-dhfwbamkhiyphjcwuncbwjsyjlax/Build/Intermediates/Pico.build/Debug/Pico.build/Objects-normal/x86_64/Pico.LinkFileList -mmacosx-version- min=10.8 -o /Users/laurent/Library/Developer/Xcode/DerivedData/Pico-dhfwbamkhiyphjcwuncbwjsyjlax/Build/Products/Debug/Pico

Pico.LinkFileList ファイルには、必要なすべての .o ファイルのリストが適切に含まれています。

見つからない関数はすべて適切にコンパイルされた .c ファイル (および .o としてコンパイル) にあるため、これらのエラーを回避するにはどうすればよいですか? ありがとう。

4

3 に答える 3

1

これらの記号はclibrary.c;にあります。コンパイルするソース ファイルのリストからそれを逃したに違いありません。

あなたの次の質問は、間違いなく、実行可能ファイルをリンクするライブラリに関するものであり、それを解決するには、Makefile.

于 2013-09-04T05:55:33.813 に答える
1

同じ状況の後、ターゲット依存関係リストに Pico を追加するとうまくいきました。(Pico からは、ライブラリを作成した xcode プロジェクト フォルダーを意味します)

参考: https ://github.com/bulldog2011/pico

于 2016-04-13T09:39:20.983 に答える
0

誰かを助けることができる場合に備えて、一部の #ifdef コマンドがコンパイルされる関数を除外していることを知りました。

于 2013-09-04T16:08:10.800 に答える