![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
行列の計算をする関数をいくつか作り、
それをまとめたファイルmatrix.cを作りました。
自作関数の、M_ADD, M_SUBなどが含まれています。
mainのファイルでmatrix.cをインクルードして、
ビルドしようとしたところ、コンパイルはうまくいくのですが、
リンク時にエラーが起こってしまいました。
具体的には、以下のような感じです。
Linking...
matrix.obj : error LNK2005: _M_ADD already defined in main.obj
matrix.obj : error LNK2005: _M_SUB already defined in main.obj
Debug/計算.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
already defined と怒られていますが、
ほかの場所でそんな名前の関数を作った覚えはありません。
関数名をいろいろ変えてみてもだめでした。
ウェブサイトを調べてみても、見当たりませんでした。
これはどういうことなのでしょうか?
どうすれば解消できるのでしょうか?
どなたかわかるかた、教えていただけませんか?
よろしくお願いします。
ちなみに、Visual C++ 6.0を使用しています。
No.1ベストアンサー
- 回答日時:
matrix.cではなく、
matrix.hがあるならそれを#include するか
include せず、mainの上の方で
プロトタイプ宣言してください
void _M_ADD( ... );
って感じで。
あるいは matrix.cの関数の先頭にinlineってつけても回避できるかも。
そのエラーは関数の実態がある
matrix.cを2回以上includeしようとしているから
おきるのだと思われます。
ありがとうございます。
アドバイスの通りにやってみたら、
うまく動きました!
matrix.cとしてやるときには
2回インクルードすることになってしまうのですね。
納得できました。
No.2
- 回答日時:
関数の実体を
matrix.c
として、
プロトタイプ宣言部分を
matrix.h
として、
#include "matrix.h"
としてやってみてください。
エラーメッセージは、mainのなかに既に、
関数定義がされているということだと思います。
matrix.objの中で関数が定義されているとき
mainの中で関数定義は(をインクルードする)必要ありません。
お返事ありがとうございます。
おかげさまで、解決させることが出来ました。
本来なら、お二方どちらにも20ポイント
差し上げたいのですが、システム上不可能なため、
先に回答いただいた方に20ポイントとさせていただきます。
ご了承ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(プログラミング・Web制作) cryptcatのビルド 4 2022/07/21 14:55
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
fortranでプログラムを実行する...
-
適切な変換関数が存在しない???
-
バッチからsqlplusの接続エラー...
-
コンパイルできません。
-
HEWを使用しているのですが、こ...
-
sys/time.hのインクルードがで...
-
Excelのエラーで困ってます。
-
BC30002: 型 'ListItem' が定義...
-
Microsoft Visual Studio Profe...
-
HANDLEの宣言でのエラー
-
C2146を回避するにはどうしたら...
-
VB2008で定数に色の設定をした...
-
ビルド失敗 指定されたファイ...
-
VBScriptのエラーの見つけ方及...
-
”wchar_t*型は渡せない”という...
-
アプリケーションエラー
-
ビルド時にinet_ptonが見つから...
-
フォームの作成中にエラーが発...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
sys/time.hのインクルードがで...
-
コンパイルできません。
-
HEWを使用しているのですが、こ...
-
RightとLeft関数のライブ...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
visual C++ でビルドの中止がで...
-
デバッグ中のエラーのことで教...
-
multiple definitionというエラー
-
ビルドが失敗してしまいます
-
LPCWSTRとchar
-
Handlesについて
-
BC30002: 型 'ListItem' が定義...
-
左側がクラス、構造体、共用体...
おすすめ情報