コンパイルエラー

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

コンパイルエラー

#1

投稿記事 by ディア » 16年前

BCC使用です。

Error: 外部シンボル 'ChangeWindowMode(int)' が未解決
Error: 外部シンボル 'DxLib_Init()' が未解決
Error: 外部シンボル 'SetDrawScreen(int)' が未解決
Error: 外部シンボル 'ScreenFlip()' が未解決Error: 外部シンボル 'ProcessMessage()' が未解決
Error: 外部シンボル 'ClearDrawScreen()' が未解決
Error: 外部シンボル 'GetHitKeyStateAll(char *)' が未解決
Error: 外部シンボル 'DxLib_End()' が未解決

というコンパイルエラーが出てしまいます・・・

2章のmain.cppの内容をコピペし、コンパイルした結果です。

解決させるにはどうしたらいいでしょうか?

box

Re:コンパイルエラー

#2

投稿記事 by box » 16年前

> というコンパイルエラーが出てしまいます・・・

リンクエラーです。コンパイルエラーではありません。

> 2章のmain.cppの内容をコピペし、コンパイルした結果です。

main.cppだけでは、実行プログラムを作成できないのではないでしょうか。
未解決だといわれている関数群を含むソースファイルも、
いっしょにコンパイル・リンクする必要があるのではないでしょうか。


【リンクエラーとは】
main.cpp内のmain関数から、funcという関数を呼び出しているとします。
そして、func関数の定義はmain.cppには存在しないとします。

この状態で、main.cppだけから実行ファイルを作成しようとした場合を考えます。

main.cppをコンパイルすると、
「main関数から、どこかにあるfunc関数を呼び出すのだな」という情報を保持し、
コンパイルは正常に終了します。main.cppからのオブジェクトファイルができます。

次に、C言語の標準関数(例:printf)や、自作の関数群を
結合させて(リンク)、実行ファイルを作成しようとします。

このとき、func関数をコンパイルしたオブジェクトファイルが
見あたりませんので、リンカー(リンクを担当するプログラム)は
「func関数が未解決」という判断を下します。実行ファイルは作成できません。
これが、リンクエラーです。

Hermit

Re:コンパイルエラー

#3

投稿記事 by Hermit » 16年前

良くは見てませんが、
Error: 外部シンボル 'DxLib_Init()' が未解決
Error: 外部シンボル 'DxLib_End()' が未解決
があるので、DxLib が、正常にリンクできるように設定されていないのでは?

未解決といわれる関数郡を、コンパイルして、ライブラリにしたものが、DxLib の中に有ると思われますので、
それをリンク出来る状態にすればいけそうな気がしますが。
2章以前の、環境の設定の仕方を見直したほうがいい気がします。

ディア

Re:コンパイルエラー

#4

投稿記事 by ディア » 16年前

返答、有難うございます。

無事、解決することができました。

閉鎖

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