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 で動作させるためにスローする必要がある別のスイッチはありますか?