1

次のコードをコンパイルしようとしています: http://www-personal.umich.edu/~mejn/dcbm/KLOptimization.cpp

しかし、g++ から次のエラー メッセージが表示されます。

> Undefined symbols for architecture x86_64:   "_gsl_rng_uniform_int",
> referenced from:
>       Initialize()     in ccDEqovL.o
>       _main in ccDEqovL.o   "_gsl_rng_default_seed", referenced from:
>       _main in ccDEqovL.o   "_gsl_rng_default", referenced from:
>       _main in ccDEqovL.o   "_gsl_rng_alloc", referenced from:
>       _main in ccDEqovL.o   "_gsl_rng_name", referenced from:
>       _main in ccDEqovL.o   "_gsl_rng_get", referenced from:
>       _main in ccDEqovL.o   "_gsl_rng_uniform", referenced from:
>       _main in ccDEqovL.o   "ComputeVI()", referenced from:
>       _main in ccDEqovL.o   "ComputeNMI()", referenced from:
>       _main in ccDEqovL.o   "_gsl_rng_free", referenced from:
>       _main in ccDEqovL.o ld: symbol(s) not found for architecture x86_64

iOS 10.7.3 を実行している MacBook Air を使用しています。g++ は i686-apple-darwin11-llvm-g++-4.2 です。

「brew install gsl」を使用してGSLをインストールすると、次の出力が得られました。

==> Downloading http://ftpmirror.gnu.org/gsl/gsl-1.15.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/gsl/1.15
==> make
==> make install
Warning: m4 macros were installed to "share/aclocal".
Homebrew does not append "/usr/local/share/aclocal"
to "/usr/share/aclocal/dirlist". If an autoconf script you use
requires these m4 macros, you'll need to add this path manually.
==> Summary
/usr/local/Cellar/gsl/1.15: 237 files, 7.0M, built in 81 seconds
4

1 に答える 1

10

GSL ライブラリをリンクするのを忘れたようです。を追加するだけ-lgslで動作するはずです (gsl がライブラリ パスにあると仮定します)。

于 2012-03-14T21:59:18.990 に答える