Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@Tsutajiro

正しいソースでもコンパイルエラーになるときの対処法

More than 5 years have passed since last update.

この記事でお話しすること

  1. ソースを正しく書いていてもコンパイルエラーになる原因を説明します。
  2. コンパイルエラーさせない方法を説明します。

今回は、私がさっきまで本気で困ったことについてTipsとして残しておきます。なお、私はCygwinを使ってコンパイルしていますので、Cygwin以外のソフトウェアでは挙動が違う可能性があります。

1. コンパイルエラーになる原因

正しく書いていてもエラーになる原因として、文字コードが挙げられます。gccやg++のデフォルトの文字コードはUTF-8です。そこにSJISなどで作られたソースコードをコンパイルさせようとすると、日本語が入ったプログラムでエラーが発生します。

実際、私もSJISでソースコードを書いていることに気付かずにコンパイラに通し、中括弧閉じ”}”をつけているにも関わらず「つけ忘れてるぞ!」と何回も言われて気が滅入っていました。路頭に迷っている方は、一度文字コードをご確認ください。

2. コンパイルエラーさせない方法

先ほど述べたように、「コンパイラとソースコードの文字コードが対応していない」ゆえに、コンパイルエラーは発生していました。ですので、これを解消させる方法は次が考えられます。

  1. ソースコードの文字コードを変更する
  2. コンパイラの文字コードを変更する

1については容易に行えます。たいてい「名前を付けて保存」をするときに文字コードが変更できるようになっているはずです。(画像はサクラエディタ。「文字コードセット」で変更できます)

tumblr_inline_o02p0ebUCw1t83x5s_1280.png

2は少々面倒です。以下のサイトを参照すればわかるのですが、コンパイルオプションで文字コードを変更することができます。 MinGW gccでSJIS文字を扱う方法 - はけの徒然日記

いちいちこのオプションを設定するのは面倒ですし、かといって毎回設定しないように設定するのも面倒です。おとなしくUTF-8でソースコードを書いたほうがいいだろう、というのが私の所感です。

3. まとめ

  1. コードを確認しても間違ってないのにコンパイラから言い掛かりをつけられる → コードの文字コードをいったん確認すべし

  2. ソースコードの文字コードを変えるほうがいろいろ楽

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Tsutajiro
DTM / HTML&CSS / C / Ruby 2015年12月から自分で本格的に勉強を始めたばかりなので知識はまだ浅いです。コメントで指摘いただけると非常に助かります。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?