前提・実現したいこと
c言語でコンパイルが上手くいきません。
sse_ng.cfg(スペースで区切られた2つの値)
からparser.cでデータを読みとり、
cost_layer.cの&weight1,&weight2で値を参照したいと思っています。
makeで実行すると下記のwarningが発生し、案の定プログラムが実行できませんでした。
cost_layer.cでparse_sse_ng_configを上手く読み込めてないようですが、
どのように解決すれば宜しいでしょうか?
includeの方法や、読み出し方法の問題でしょうか。
c言語初心者です、宜しくお願いします。
発生している問題・エラーメッセージ
warningメッセージ ./src/cost_layer.c: In function ‘forward_cost_layer_gpu’: ./src/cost_layer.c:146:9: warning: implicit declaration of function ‘parse_sse_ng_config’ [-Wimplicit-function-declaration] parse_sse_ng_config(&weight1, &weight2);
該当のソースコード
cfgからデータ読み込みファイル
parser.c
c
1void parse_sse_ng_config(float* weight1, float* weight2) 2{ 3 char values[100+1]; 4 char *filename; 5 //long lines; 6 7 // read file 8 filename="sse_ng.cfg"; 9 FILE* fp = fopen(filename, "r"); 10 fread(values, sizeof(float), 1, fp); 11 12 // read values from fp 13 sscanf(values, "%f %f\n", weight1, weight2); 14 //*weight1 = ; 15 //*weight2 = ; 16 fclose(fp); 17}
parser.cファイルからデータ参照
cost_layer.c
c
1#include "cost_layer.h" 2#include <string.h> 3#include <stdlib.h> 4#include <stdio.h> 5#include "parser.h" 6 7void forward_cost_layer_gpu(cost_layer l, network net) 8{ //コード省略 9 } else if(l.cost_type == SSE_NG){ 10 float weight1 = 100.0; 11 float weight2 = 1.0; 12 parse_sse_ng_config(&weight1, &weight2); 13 printf("%f", weight1); 14 printf("%f", weight2); 15 sse_ng_gpu(l.batch*l.inputs, net.input_gpu, net.truth_gpu, l.delta_gpu, l.output_gpu, weight1, weight2); 16 } else { 17 //コード省略
sse_ng.cfg
200.0 50.0
補足情報(FW/ツールのバージョンなど)
ubuntu
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/08 02:43
2018/06/08 02:44
2018/06/08 02:51
2018/06/08 02:58
2018/06/08 03:00
2018/06/08 03:00