トップページ > プログラム > 2015年05月21日 > 25nDpRt2

書き込み順位&時間帯一覧

8 位/192 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000020102106



使用した名前一覧書き込んだスレッド一覧
125
デフォルトの名無しさん
【GPGPU】くだすれCUDAスレ part7【NVIDIA】 [転載禁止]©2ch.net
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net

書き込みレス一覧

【GPGPU】くだすれCUDAスレ part7【NVIDIA】 [転載禁止]©2ch.net
132 :125[sage]:2015/05/21(木) 17:23:47.43 ID:25nDpRt2
レスありがとうございます

どうやら>>127のエラーはCUDAとは関係なさそうなのでC++のスレで聞いてきます
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
703 :デフォルトの名無しさん[sage]:2015/05/21(木) 17:39:47.55 ID:25nDpRt2
ソースファイルを分割してみたのですがエラーが出てしまうので解決方法を教えてもらえませんか?
//main.cu
#include "test.h"
//....変数や関数の定義
int main(){
....
}


//sub.cu
//原因特定のため、空ファイル


//test.h
#ifndef _TEST_H_
#define _TEST_H_
#include <stdlib.h>
......
#include "MT.h"
......//変数や関数の宣言
#endif

これをビルドすると以下のようなエラーがいくつか出ます
1>sub.cu.obj : error LNK2005: "long __cdecl genrand_int31(void)" (?genrand_int31@@YAJXZ) は既に main.cu.obj で定義されています。
これらはすべてヘッダファイルでインクルードしたMT.hの関数についてのエラーなのですが、MT.hのどこがいけないのでしょうか?
MT.h: http://www.sat.t.u-tokyo.ac.jp/~omi/code/MT.h
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
707 :デフォルトの名無しさん[sage]:2015/05/21(木) 19:43:06.01 ID:25nDpRt2
>>704
改名してみましたが変化なしでした

>>705
それからmain()部分を削除してヘッダファイルにしたものが>>703なので、内容は同じです

>>706
ヘッダファイルに問題がないとすれば、そうなりますよね
もう一度重複定義を引き起こす原因を探してみます

ちなみにソースファイルを分割する前は>>703のコードで正常に動作していました
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
711 :デフォルトの名無しさん[sage]:2015/05/21(木) 21:25:38.45 ID:25nDpRt2
>>708->>710
レスおりごとうございます
>>709のおっしゃる通りMT.cをインクルードしてました
ヘッダにMT.cの宣言を書くと成功しました!
ところでどうしてMT.hではダメだったのでしょうか?
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
713 :デフォルトの名無しさん[sage]:2015/05/21(木) 21:47:23.79 ID:25nDpRt2
>>712
正常に動作しないのは>>703の状態です、正常に動作していたのは全てのコードをmain.cに書いていた時です。
ソースコードを分割したときに、新しく作ったtest.hでMT.hをインクルードしたのですが、
エラーから見るに何故かMT.hが複数回定義されているようなんです
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
716 :デフォルトの名無しさん[sage]:2015/05/21(木) 22:39:18.89 ID:25nDpRt2
>>714
すみません、それは訳あって出来ないんです

>>715
そういうことですか、test.hにインクルードガードつけてるから大丈夫かなと勝手に思ってました
ありがとうございました


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。