リンクエラー

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yux

リンクエラー

#1

投稿記事 by yux » 15年前

何度もすみません(__)Xです。

さっきの質問は解決したのですが、リンクしているときに、エラーが出てしまいました。

エラーは、

リンクしています...
key.obj : error LNK2001: 外部シンボル ""struct configpad_t configpad" (?configpad@@3Uconfigpad_t@@A)" は未解決です。
main.obj : error LNK2019: 未解決の外部シンボル "struct configpad_t configpad" (?configpad@@3Uconfigpad_t@@A) が関数 "int __cdecl ProcessLoop(void)" (?ProcessLoop@@YAHXZ) で参照されました。
main.obj : error LNK2001: 外部シンボル ""char * Key" (?Key@@3PADA)" は未解決です。
main.obj : error LNK2001: 外部シンボル ""struct music_t ms" (?ms@@3Umusic_t@@A)" は未解決です。
main.obj : error LNK2001: 外部シンボル ""struct ch_t ch" (?ch@@3Uch_t@@A)" は未解決です。
main.obj : error LNK2001: 外部シンボル ""struct back_t bc" (?bc@@3Uback_t@@A)" は未解決です。
G:\プログラミング\TeamX\DinosaurX\Debug\DinosaurX.exe : fatal error LNK1120: 外部参照 5 が未解決です。
ビルドログは "file://g:\プログラミング\TeamX\DinosaurX\Debug\BuildLog.htm" に保存されました。
DinosaurX - エラー 7、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

というものです。

環境:WindowsXP HomeEdition
VisualC++2008ExpressEdition

お願いします。

fatens

Re:リンクエラー

#2

投稿記事 by fatens » 15年前

main.cppの先頭に
#define GLOBAL_INSTANCE
#include "global.h"
のように書いていますか?

たかぎ

Re:リンクエラー

#3

投稿記事 by たかぎ » 15年前

エラーが出るたびに質問していたのではキリがありません。
単純なケアレスミスによるエラーなら自己解決できるはずですし、そうでないなら根本的に理解できていないことが原因の場合が多いのではないでしょうか?
というわけで、入門書でも読みながら、簡単なことから確実に理解していくことを強くお勧めします。

yux

Re:リンクエラー

#4

投稿記事 by yux » 15年前

#define GLOBAL_INSTANCEをコメントにしてました(__)

でもコメントを外すと、

g:\プログラミング\teamx\dinosaurx\head\global.h(12) : error C2086: 'char Key[256]' : 再定義されました。
g:\プログラミング\teamx\dinosaurx\head\global.h(12) : 'Key' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\global.h(14) : error C2086: 'ch_t ch' : 再定義されました。
g:\プログラミング\teamx\dinosaurx\head\global.h(14) : 'ch' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\global.h(15) : error C2086: 'back_t bc' : 再定義されました。
g:\プログラミング\teamx\dinosaurx\head\global.h(15) : 'bc' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\global.h(16) : error C2086: 'music_t ms' : 再定義されました。
g:\プログラミング\teamx\dinosaurx\head\global.h(16) : 'ms' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\global.h(17) : error C2086: 'configpad_t configpad' : 再定義されました。
g:\プログラミング\teamx\dinosaurx\head\global.h(17) : 'configpad' の宣言を確認してください。
ビルドログは "file://g:\プログラミング\TeamX\DinosaurX\Debug\BuildLog.htm" に保存されました。
DinosaurX - エラー 5、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

と出てきました。

ぜらーちん

Re:リンクエラー

#5

投稿記事 by ぜらーちん » 15年前

GLOBAL_INSTANCEは使った事がないので、あれですが
今簡単に調べてみたところ、externを省略出来るマクロを設定されているようですね

全文が分からないのでこちらを見ての予想ですが、
http://www.play21.jp/board/formz.cgi?ac ... tree#57486

global.hで、構造体の宣言の関数が入っているstruct.hをよんでますか?
ch_tとかは、struct.hに入っているのを使っているようなので
構造体宣言もしていない以上、struct.hを呼び出さないと使えないと思います

yux

Re:リンクエラー

#6

投稿記事 by yux » 15年前

ぜらーちんさんの言われた事をやってみると、エラーが5つに減りました!
後5つなので、たかぎさんの言うとおり、基本を理解して、後は自力でやってみたいと思います!

閉鎖

“C言語何でも質問掲示板” へ戻る