みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

下記のc言語のプログラム(LU分解を用いた連立一次方程式)を起動させた

下記のc言語のプログラム(LU分解を用いた連立一次方程式)を起動させたいのですがエラーがでてしまいます。
どのようにしたら動作しますか?


#include <stdio.h>
#include <stdlib.h>
#include <float.h>

#define MAX_DIM 10
#define MIN_DIM 1

int get_dimension(int, int);
double *get_matrix( int );
double *get_vector( int );
void set_matrix( int, double* );
void set_vector( int, double* );
void LU( int, double*, double*, double* );
void L_equ( int, double*, double*, double* );
void U_equ( int, double*, double*, double* );
void pr_vector( int, double* );
void matrixcpy( int, double*, double* );
void make_I( int, double* );

void main( void )
{
int n , i ;
double *A, *b ;
double *L, *U ;
double *c, *x ;

n = get_dimension( MAX_DIM, MIN_DIM );
if( ( A = get_matrix( n ) ) == (double *) NULL ||
( L = get_matrix( n ) ) == (double *) NULL ||
( U = get_matrix( n ) ) == (double *) NULL ||
( b = get_vector( n ) ) == (double *) NULL ||
( c = get_vector( n ) ) == (double *) NULL ||
( x = get_vector( n ) ) == (double *) NULL )
{
fprintf( stderr, "メモリ所得エラーです!!\n" );
}
else
{
set_matrix( n, A );
set_vector( n, b );

LU( n, A, L, U );
L_equ( n, L, c, b );
U_equ( n, U, x, c );

printf( "解は、" ) ;
pr_vector( n, x ) ;
}
}

投稿日時 - 2010-07-04 23:26:36

QNo.6015872

すぐに回答ほしいです

質問者が選んだベストアンサー

> warning C4101: 'i' : ローカル変数は 1 度も使われていません。

変数iが宣言されているけど、どこでも使われてないという警告です。iが確かに必要無いなら無視して構いません。(該当する宣言を削除すると、この警告は出なくなります)


> error LNK2019: 未解決の外部シンボル "void __cdecl pr_vector(int,double *)" (?pr_vector@@YAXHPAN@Z) が関数 _main で参照されました。

「pr_vector(int,double *)」という呼出形式の関数がmain関数内で呼び出されていますが、この関数の実体はどこにも見当たらないと言っています。
「関数の実体がソース中に記述されていない」or「関数を含むライブラリがリンクされていない」ということです。プロトタイプ宣言だけでは関数は使えません。関数の実体をきちんと記述するなりライブラリを正しくリンクしてください。

以下、各関数に対して同様のエラーです。

投稿日時 - 2010-07-05 04:04:11

お礼

ありがとうございます。

投稿日時 - 2010-07-25 20:57:08

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

このmain関数はほとんど関数呼び出しだけなのは分かりますか?
おそらく関数内部でエラーが発生していますのでこれだけでは分かりません。

あと、どのようなエラーになったのかは最低でも記入して下さい。
本来であれば自分で解析して分からない部分まで切り分けるべきです。

おそらく大学の研究関連でしょう。
素直にまわりの人に聴いてください。

投稿日時 - 2010-07-04 23:36:51

補足

エラー内容です。
エラー 10、警告 1

warning C4101: 'i' : ローカル変数は 1 度も使われていません。

error LNK2019: 未解決の外部シンボル "void __cdecl pr_vector(int,double *)" (?pr_vector@@YAXHPAN@Z) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "void __cdecl U_equ(int,double *,double *,double *)" (?U_equ@@YAXHPAN00@Z) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "void __cdecl L_equ(int,double *,double *,double *)" (?L_equ@@YAXHPAN00@Z) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "void __cdecl LU(int,double *,double *,double *)" (?LU@@YAXHPAN00@Z) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "void __cdecl set_vector(int,double *)" (?set_vector@@YAXHPAN@Z) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "void __cdecl set_matrix(int,double *)" (?set_matrix@@YAXHPAN@Z) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "double * __cdecl get_vector(int)" (?get_vector@@YAPANH@Z) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "double * __cdecl get_matrix(int)" (?get_matrix@@YAPANH@Z) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "int __cdecl get_dimension(int,int)" (?get_dimension@@YAHHH@Z) が関数 _main で参照されました。
fatal error LNK1120: 外部参照 9 が未解決です。

投稿日時 - 2010-07-05 00:12:29

あなたにオススメの質問