2017-07-12 18 views
0

macOS Sierraでguile-2.0.11をビルドするために、 "lib guile_2.0_la-foreign.o"というファイルをリンクしようとしています。メイクファイルからldコマンドは「_ffi_type_xxx」が「XXX」の位置に変化ffiシンボルはどこに定義されていますか?

"_ffi_type_float", referenced from: 
_fill_ffi_type in lib guile_2.0_la-foreign.o 

ld: symbol(s) not found for architecture x86_64 

と同様ダース以上のエラーを返します。私はhombrewでlibffiをインストールしており、CPPFLAGSとLDFLAGSにlibディレクトリとインクルードディレクトリを見つける場所を教えても、同じエラーが出る。これらのシンボルはどこにありますか?

+0

実際にアプリケーションをビルドするときにライブラリをリンクしましたか? '-lffi'で? –

+0

Guileを正しくリンクする方法についての指示に従っていますか? https://www.gnu.org/software/guile/manual/guile.html#Linking-Guile-into-Programsおそらく(私はあなたが参照している "guile"がわからないが) –

+0

リンクが完了しているconfigureファイルを介して生成されたMakefileを介してconfigureファイルは自動ツールを使用して生成され、GitHubリポジトリからguile-2.0.11パッケージをダウンロードし、そのパッケージに含まれるautogen.shスクリプトファイルを実行することからプロセス全体が開始されます。 configureコマンドのオプションとmakeの出力の詳細については、こちらをご覧ください:[link](https://stackoverflow.com/questions/45013549/build-of-guile-2-0-11-on-macos- sierra-fails-undefined-symbols-for-architecture) – John

答えて

0

Makefileには、ffiライブラリへのパスを指定する環境変数(LIBFFI_LIBS)があります。私はリンクを実際にライブラリにリンクするように指示するフラグを見逃していました。

値をLIBFFI_LIBS="-L/usr/local/opt/libffi/lib"からLIBFFI_LIBS="-L/usr/local/opt/libffi/lib -lffi"に変更しました。未定義のffiシンボルに関するすべてのエラーが表示されなくなりました。

関連する問題