top of page

[C]コンパイルエラーとリンクエラー


概要

前回、コンパイルとリンクについて説明しました。

今回は、それを元にコンパイルエラーとリンクエラーについて説明します。



コンパイルエラー

コンパイルで行われるのは


1 コードのバイナリ化

2 あるものリスト、欲しいものリストの作成


でした。これでエラーとなるのは以下のような場合です。


1 コードがバイナリ化できない(つまり構文が規則通りでない、など)

2 あるものリストが作れない(つまり関数の宣言がされていない)


です。実は関数の定義はなくてもコンパイルはできます。(エディタが気を利かせてエラーにしてくれる場合も多いですが)



リンクエラー

一方、リンクで行われるのは


1 関数のアドレスの決定

2 関数呼び出しを、その関数コードのアドレスへのジャンプへ置き換え


でした。これがエラーとなるのは、2の置き換えができない場合です。移動先のアドレスが存在しない、つまり関数定義がない場合ですね。



まとめ

関数の定義がないのか、宣言がないのかはどちらのエラーが出ているかで分かりますね。

Comments


カテゴリ

あなたの買い物をサポートする
アプリ Shop Plan

iphone6.5p2.png

​いつ何を買うかの計画を立てられるアプリです。

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

靴を大切にしよう!靴管理アプリ SHOES_KEEP

納品:iPhone6.5①.png

靴の履いた回数、お手入れ回数を管理するアプリです。

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

「後で読む」を忘れないアプリ ArticleReminder

気になった​Webサイトを登録し、指定時刻にリマインダを送れるアプリです

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png
bottom of page