
本に載っていたソースなんですが,外部シンボル 'drand48()' が未解決(C:\NYU.OBJ が参照)というエラーが出てなかなかコンパイルできません。drand48という関数はstdlib.hに含まれていると思うのですが,何故だか分かりません。どなたか分かる方,是非ともお力をお貸しください。
環境はbcc55です。元のソースはC++Builder4で作られたそうです。字数の関係ですべて載せることができませんが,よろしくお願いします!
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#define Iunits 14
#define Hunits 200
#define Ounits 2
#define Rlow -0.30
#define Rhigh 0.30
#define A 1.4
#define B 0.3
#define fout(x) ( 1 / (1 + exp( -(x) ) ))
#define urand() ( drand48() * (Rhigh - Rlow) + Rlow )
~中略
void initialize()/*各ユニットに乱数で重みを振り当てる*/
{
int i,j;
for (i = 0; i < Hunits; i++){
for (j = 0; j < Iunits; j++){
wih[i][j] = urand();
}
shikiih[i] = urand();
}
for (i = 0; i < Ounits; i++){
for (j = 0; j < Hunits; j++){
who[i][j] = urand();
}
shikiio[i] = urand();
}
}
~少略
No.3ベストアンサー
- 回答日時:
> なんとかwindowsでできないでしょうか?
↓これでいかがでしょ。
static long long x=0x1234ABCD330E;
double drand48() /* 0.0以上1.0未満 */
{
x = x*0x5DEECE66D + 0xB;
return (x&0xFFFFFFFFFFFF)*(1.0/281474976710656.0);
}
long lrand48() /* 0以上2147483647以下 */
{
x = x*0x5DEECE66D + 0xB;
return(long)(x>>17)&0x7FFFFFFF;
}
long mrand48() /* -2147483648以上214748367以下 */
{
x = x*0x5DEECE66D + 0xB;
return(long)(x>>16)&0xFFFFFFFF;
}
void srand48(long s)
{
x = s;
x = (x<<16)+0x330E;
}
なんとかコンパイルできました。まだ問題が発生してexeファイルは実行できませんが,もう一度全体を見直してみます。ありがとうございました!
No.2
- 回答日時:
drand48はUNIX/Linux系の関数です。
どんなコンパイラ(ライブラリ)でも提供されるものではないでしょう。
回答ありがとうございます。UNIX/LINUX系ですか・・・。度々質問して申し訳ないのですががなんとかwindowsでできないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
空ENTERの判別
-
C言語のエラーを修正したい
-
名前空間でビルドエラー(LNK20...
-
std::map の const 修飾について
-
C++で、環境変数の読み込み方を...
-
CStringとString
-
JPEGやPNGが読めるLoadImage関数
-
c++ ファイルからの複素数の読...
-
OpenCVでRAW画像(カラー)を開...
-
C++ 数値データファイルから2次...
-
なぜ、C++の標準ヘッダをインク...
-
2進を10進に変換するには?
-
STLのwstring型から BSTR型 へ...
-
PICでダイナミック点灯 なぜか...
-
Aの値からBの値を除するとは??
-
Enterキーを押されたら次の処理...
-
「Aに対するBの割合」と「Aに対...
-
long型の定数の末尾にLを付ける...
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VC++で文字列から任意の文字を...
-
switch文のエラーについて
-
【C++】ヘッダ内でstringを格納...
-
enumの値から定義名を文字列化...
-
なぜ、C++の標準ヘッダをインク...
-
gccでコンパイル時のエラー
-
C++でShowCursorを使いたい。
-
#defineの使い方について
-
VxWorks 6.4ソケット接続につい...
-
空ENTERの判別
-
OpenCVでRAW画像(カラー)を開...
-
CStringとString
-
途中からMFCを使用したい
-
snprintfが使用できない。
-
C++での <iostream.h>と<iostre...
-
_tcscat がうまくいきません(V...
-
リモートデスクトップの接続元I...
-
#define中の#のエスケープ
-
C++ 数値データファイルから2次...
-
コーディング
おすすめ情報