質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

1538閲覧

vscode上でc++のコードがコンパイルできない

Uranwed

総合スコア2

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/02/18 13:55

環境

Windows11 64bit
Visual studio code 最新版
MinGWをインストールし、vscodeのpowershell上でgccを用いてコンパイルしようとしました。C言語のhello worldを表示するソースコードは問題なくコンパイルでき、その実行可能ファイルも開けました。

問題

C:\programming gcc sam1.cpp

としてprogrammingのディレクトリにあったソースコードをコンパイルしようとしました。
sam1.cppの中身は以下の通りです。

#include <iostream> using namespace std; int main() { cout << "hello" << endl; }
C:\programming>gcc sam1.cpp c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\arc\AppData\Local\Temp\ccE8mkLU.o:sam1.cpp:(.text+0x21): undefined reference to `std::cout' c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\arc\AppData\Local\Temp\ccE8mkLU.o:sam1.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:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\arc\AppData\Local\Temp\ccE8mkLU.o:sam1.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:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\arc\AppData\Local\Temp\ccE8mkLU.o:sam1.cpp:(.text+0x34): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))' c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\arc\AppData\Local\Temp\ccE8mkLU.o:sam1.cpp:(.text+0x54): undefined reference to `std::ios_base::Init::~Init()' c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\arc\AppData\Local\Temp\ccE8mkLU.o:sam1.cpp:(.text+0x75): undefined reference to `std::ios_base::Init::Init()' collect2.exe: error: ld returned 1 exit status

最後の部分でエラーが発生していること自体は把握したのですが、解決方法が全く分かりませんでした。なぜCでは問題なくコンパイルできていたのにC++だとエラーが出るのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

gccではなくg++で試してみてください

投稿2022/02/18 14:01

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Uranwed

2022/02/18 14:09

ありがとうございます! とても初歩的なミスを犯していましたね
Uranwed

2022/02/18 14:11

すみません、また初歩的な質問をしてしまうのですがpowershell上でexeファイルの前に書く".\"にはどのような意味があるのでしょうか?
退会済みユーザー

退会済みユーザー

2022/02/18 18:00

カレントディレクトリを表してるんだと思います。 試しに.\を絶対パスにして実行してみるとできるんじゃないですかね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問