2017-07-10 11 views
0

私は経験豊富なプログラマー/開発者/ソフトウェアエンジニアではないが、この古いバージョンのguile-2.0.11を手作りで作る必要がある"(最近のバージョンのguileをインストールする)ホームブリューを使用するのではなく、 guile-2.0.11用のtarballをGitHubリポジトリからダウンロードし、展開してシェルスクリプトautogen.shを実行しました。これによりconfigure実行可能ファイルが生成され、完了まで実行され、Makefileが生成されました。macOS Sierraでguile-2.0.11のビルドが失敗する:アーキテクチャx86_64の未定義シンボル

Undefined symbols for architecture x86_64: 
"_clock_getcpuclockid", referenced from: 
_scm_init_stime in libguile_2.0_la-stime.o 
"_ffi_call", referenced from: 
_scm_i_foreign_call in libguile_2.0_la-foreign.o 

と16より「FFI」なメッセージ:私はmakeを実行すると、私はこのエラーを取得するまで、ビルドが続行されます。その後、エラーメッセージは終了します。

ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see  invocation) 
make[3]: *** [libguile-2.0.la] Error 1 
make[2]: *** [all] Error 2 
make[1]: *** [all-recursive] Error 1 

リンカは明らかにこれらのシンボルを見つけることができません。明示的なリンクコマンドは非常に広範囲です。私は "make V = 1"を使用すると、includeとlibraryのパスをすべて表示します。

Applications/Xcode.app/Contents/Developer/usr/bin/make all-am 
/bin/sh ../libtool --tag=CC --mode=link gcc - I/usr/local/opt/gettext/include -I/usr/local/include - I/usr/local/opt/readline/include - I/usr/local/Cellar/gettext/0.19.8.1/include -D_THREAD_SAFE -Wall - Wmissing-prototypes -Wdeclaration-after-statement -Wpointer-arith -Wswitch- enum -fno-strict-aliasing -fwrapv -fvisibility=hidden - I/usr/local/Cellar/bdw-gc/7.6.0/include -g -O2 -L/usr/local/Cellar/bdw- gc/7.6.0/lib -lgc -L/usr/local/opt/libffi/lib    -liconv - L/usr/local/opt/gettext/lib -lintl -R/usr/local/opt/gettext/lib -Wl,- framework -Wl,CoreFoundation -L/usr/local/lib -lunistring -R/usr/local/lib  -version-info 29:2:7 -export-dynamic -no-undefined -L/usr/local/opt/gettext/lib -L/usr/local/lib -L/usr/local/opt/readline/lib  -L/usr/local/Cellar/gettext/0.19.8.1/lib -o libguile-2.0.la -rpath /usr/local/lib 

次に、libtoolがあります。

xxxx.o

libtool: link: gcc -dynamiclib -o .libs/libguile-2.0.22.dylib .libs/libguile_2.0_la-alist.o .libs/libguile_2.0_la-arbiters.o .libs/libguile_2.0_la-array-handle.o 

と多くのより多くのそして

-Wl,-force_load,../lib/.libs/libgnu.a -L/usr/local/Cellar/bdw- gc/7.6.0/lib -lgc -L/usr/local/opt/libffi/lib -L/usr/local/opt/gettext/lib -L/usr/local/lib -L/usr/local/opt/readline/lib - L/usr/local/Cellar/gettext/0.19.8.1/lib -lintl -lunistring -liconv -lgmp - lltdl -lm -g -O2 -Wl,-framework -Wl,CoreFoundation -install_name /usr/local/lib/libguile-2.0.22.dylib -compatibility_version 30 - current_version 30.2 -Wl,-single_module 

ffilibの最新バージョンは、OPT/libffi/libには/ usr/localシンボリックリンク/です私はリンカーがそれを見つけることができると思います。どんな助けでも大歓迎です。

+0

この問題の解決策が見つかりました。 _ffi_に関連するすべての未定義シンボルは、リンカーフラグの省略によるものです。答えは[link](https://stackoverflow.com/questions/45062678/where-are-ffi-symbols-defined/45103652#45103652)です。しかし、 "_clock_getcpuclockid"に関連する最初のエラーはビルドをまだ防ぎます。 – John

答えて

0

この問題は、実際には未定義のシンボル "_clock_getcpuclockid"と(2)すべての "ffi"の2つの問題です。第2の問題に対する答えはhereであり、第1の問題に対する答えはhereである。他の解決策があるかもしれませんが、私のmacOS Sierra(10.12.5)にguile-2.0.11をインストールしました。

関連する問題