2

GSL を使用して、Windows 上の C でベータ分布のランダム偏差を生成しようとしています。プログラムはリンクせず、よく知られている「エラー LNK2001: 未解決の外部シンボル _gsl_rng_default」エラー メッセージが表示されます。

GSL の一般的なインストールには問題はありません。cdf 関数を正常にコンパイルして呼び出すことができます。しかし、記録のために:

プログラムには次のものが含まれます。

#include <gsl/gsl_randist.h>

#include <gsl/gsl_cdf.h>

#include <gsl/gsl_rng.h>

構成プロパティ -> C/C++ -> 一般 -> 追加のインクルード ディレクトリは、GSL-1.15\include ディレクトリを指します。

Configuration Properties->Linker->General->Additional Library Directories は、GSL-1.15\lib ディレクトリを指しています。

[構成プロパティ] -> [リンカー] -> [入力] -> [追加の依存関係] には、libgsl.dll.a と libgslcblas.dll.a の 2 つのエントリがあります。

T = gsl_rng_default;行が削除されると、プログラムはコンパイルおよびリンクされます。
プログラムでコンパイルするとT = gsl_rng_default;リンクしません。

GSL_DLL をプリプロセッサ定義としてインクルードしてみました。問題への影響なし。

#define GSL_DLLプログラムの先頭で試しました。それでも問題には影響しません。

[構成プロパティ] -> [C/C++] -> [コード生成] -> [ランタイム ライブラリ] ですべての設定オプションを試しました。問題への影響なし。

これを Visual Studio 2008 で動作させるためにスローする必要がある別のスイッチはありますか?

4

1 に答える 1