0

だから私は Cygwin でソースから GSL をコンパイルしました。すべてがうまくいき、エラーは発生しませんでした。しかし、単純なコードをコンパイルしようとすると、次のエラーが発生します。

..\..\..\Programme\CodeBlocks\MinGW\lib\libgsl.a(error.o) In function `gsl_error':
\usr\include\gsl\err\error.c|43|undefined reference to `__getreent'
\usr\include\gsl\err\error.c|44|undefined reference to `__getreent'
\usr\include\gsl\err\error.c|45|undefined reference to `__getreent'
..\..\..\Programme\CodeBlocks\MinGW\lib\libgsl.a(stream.o) In function `gsl_stream_printf':
\usr\include\gsl\err\stream.c|37|undefined reference to `__getreent'
..\..\..\Programme\CodeBlocks\MinGW\lib\libgsl.a(stream.o) In function `gsl_set_stream':
\usr\include\gsl\err\stream.c|61|undefined reference to `__getreent'

libgsl.a と libgscblas.a のライブラリをリンクしましたが、その他の機能については何の不満もありません。

今後の参考のために: code::blocks でツールチェーンをセットアップする場合は、[OK] ではなく [キャンセル] を押さないでください。

4

2 に答える 2

2

表示されているエラーは、MinGWがデフォルトでCygwinDLLをリンクしていないことが原因です。

MinGWとCygwinでコンパイルされたライブラリは、互いにうまく機能しません。それを機能させることは可能ですが、それは実際には良い考えではありません。

プロジェクトにツールチェーンを1つ選択します。この場合、Code :: Blocksを設定して、バンドルされたMinGWディストリビューションの代わりにCygwinツールチェーンを使用するか、GSLをMinGWでコンパイルします。

于 2012-05-06T16:57:45.280 に答える
0

Cygwin では次のオプションを使用できます。

./configure CC=i686-w64-mingw32-gcc

次に、CodeBlocks で GSL を使用できます。

于 2015-09-01T06:48:16.823 に答える