2

私が取り組んでいるアプリは、外部ライブラリ pdlib を使用します。これには、ブリッジヘッダーを介してインポートし、#import "Uzi.c"Uzi.c の setup 関数を介してメインの Swift ファイルを呼び出すUzi_setup()独自の外部ファイル (.c ファイル) があります。ViewControllerクラス。数日前に新しい公開 Xcode 8 に更新するまで、私はこれに問題はありませんでした (夏に Xcode 8 Beta 1 に問題はありませんでした)。

以下は、1 つの「Mach-O リンカ エラー」の傘の下に一覧表示された 7 つのエラーです。

Undefined symbols for architecture x86_64:
"_Uzi_bang", referenced from:
  _Uzi_setup in ViewController.o
"_Uzi_class", referenced from:
  _Uzi_setup in ViewController.o
"_Uzi_float", referenced from:
  _Uzi_setup in ViewController.o
"_Uzi_new", referenced from:
  _Uzi_setup in ViewController.o
"_Uzi_pause", referenced from:
  _Uzi_setup in ViewController.o
"_Uzi_resume", referenced from:
  _Uzi_setup in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

これらの未定義シンボルは、Uzi.c から宣言された 6 つの関数とクラスです。c ファイル全体へのリンクは次のとおりです: https://github.com/electrickery/pd-miXedSon/blob/master/hammer/Uzi.c

同様の問題に対処するためにオンラインで見つけたすべてのソリューションを試しましたが、まだ解決策はありません...「アーキテクチャ」と「有効なアーキテクチャ」の設定をarmv7とarmv7s(arm64なし)のみに変更して、「ビルドアクティブなアーキテクチャのみ」を「いいえ」に変更します。これらの手順は、同様の状況で他の人を助けるように見えますが、私にはうまくいきませんでした (また、arm64 を削除すると、追加のエラーが表示されます)。

XCode 8 はかなり最近のもの (パブリック バージョンは 9 月 13 日にリリースされた) であるため、このアップグレードに関して同様の問題を引き起こす他の質問は事実上ありません。

どんな助けでも大歓迎です!

4

1 に答える 1