C++ HelloWorldまでのメモ
アニメグッズではなくC++の環境構築からHelloWorld出力までのメモです。
検索すれば情報がいっぱい出るけど私はメチャメチャ行き詰ったのでメモっておきます。
前置き
OS:Windows10 64Bit
開発ソフト:Visual Studio Code
やり方
大筋の進め方は以下のリンク先にて書かれている通りでした。
Visual Studio Codeと拡張機能のインストールまでは順調。
そしてMinGWのインストールも問題なくできました。
環境変数
環境変数の設定にはユーザー環境変数とシステム環境変数があります。とりあえず私は今両方ともパスを通しています。ファイルパスは
C:\MinGW\bin
です。ですが上手くいかないOTL。再起動してもダメ。なぜ・・・。
とりあえず確認として環境変数で設定したパスをCtrl+Cしてエクスプローラーで開けるかやってみたら・・・開けなかった。結局しっかりと確かめたわけではないですがおそらく通していたファイルパスの後ろにスペースが紛れていたのではないかと。エクスプローラーからC:\MinGW\binを取り直してもう一度環境変数を設定。やっとgccを認識してくれた(*´Д`)
コンパイル
ですがまた行き詰ってしまいます。今度はコンパイルです。
PS C:\Users\user\Desktop> gcc -o program .\test01.cpp
↓エラー
C:\Users\user\AppData\Local\Temp\ccEk2YBV.o:test01.cpp:(.text+0x21): undefined reference to `std::cout'
C:\Users\user\AppData\Local\Temp\ccEk2YBV.o:test01.cpp:(.text+0x26): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'C:\Users\user\AppData\Local\Temp\ccEk2YBV.o:test01.cpp:(.text+0x2d): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'C:\Users\user\AppData\Local\Temp\ccEk2YBV.o:test01.cpp:(.text+0x34): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'C:\Users\user\AppData\Local\Temp\ccEk2YBV.o:test01.cpp:(.text+0x54): undefined reference to `std::ios_base::Init::~Init()'
C:\Users\user\AppData\Local\Temp\ccEk2YBV.o:test01.cpp:(.text+0x75): undefined reference to `std::ios_base::Init::Init()'collect2.exe: error: ld returned 1 exit status
参考サイトの通りにしたのに上手くいかない。間違っていたのはgccで、これをg++にすると動きました。
PS C:\Users\user\Desktop> g++ -o program .\test01.cpp
良かった(´ρ`)。実行はスムーズに行けました。
PS C:\Users\user\Desktop> .\program.exe
出力結果→Hello C++ World
何故g++にしたら動いたか。それはgccがC言語用のコマンドで、g++がC++のコマンドだったからです。名前の通りですね。こんな所で時間使ってるのは私くらいでしょうか( ;∀;)
なんにせよやっとC++の勉強が始められる。良かったってことにしたい。