🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C++

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

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

Sublime Text

SublimeTextとは、オーストラリアのSublime HQ Pty Ltdが提供しているテキストエディターのことです。Mac/Windows/Linuxでの利用が可能で、柔軟にカスタマイズできたり、多くの言語に対応していくこともあり、海外や日本国内でも人気のあるエディターです。

Q&A

解決済

4回答

14164閲覧

C++ プロシージャエントリポイントが見つかりません、というエラーが出る

退会済みユーザー

退会済みユーザー

総合スコア0

C++

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

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

Sublime Text

SublimeTextとは、オーストラリアのSublime HQ Pty Ltdが提供しているテキストエディターのことです。Mac/Windows/Linuxでの利用が可能で、柔軟にカスタマイズできたり、多くの言語に対応していくこともあり、海外や日本国内でも人気のあるエディターです。

0グッド

0クリップ

投稿2017/01/10 14:30

編集2017/01/11 12:00

###前提・実現したいこと
C++の勉強を始めたばかりのものです。先ほど質問をさせていただきコード自体のエラーは解消することができたのですが、下に載せた画像のようなウインドウが発生します(黒塗り部分はユーザー名です)。色々なサイトをあたりましたが、解決方法がよくわかりませんでした。もし解決法がわかる方がいらっしゃれば、教えていただけると助かります。よろしくお願いします。

###発生している問題・エラーメッセージ

###該当のソースコード

#include <cstdio> #include <iostream> #include <cstring> using namespace std;// int main() { string str; puts("Hello,World"); cin >> str; puts(str.c_str()); }

###補足情報(言語/FW/ツール等のバージョンなど)
使用しているテキストエディタはSublimeText、コンパイラはMinGWを使用しています。

(追記)実行はSublimeTextのショートカット(Ctrl+B)からと生成された.exeファイルをダブルクリックのどちらも試しました。しかし、どちらも上の画像のように「プロシージャエントリポイントが見つかりませんでした」と表示されてしまいます。
ちなみに、MinGWの導入はこちらのサイトを参考に行いました。
SublimeText3でC++を気軽に実行する環境を作る。

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

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

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

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

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

guest

回答4

0

容量的な問題があるのであれば MinGW でのコンパイルはどうでしょうか。

SublimeTextというのは使ったことないのでよくわかりませんが、

テキストエディタ ( TeraPad, サクラエディタ etc. ) でソースコードを記述して保存。

コマンドライン ( コマンドプロンプト, ターミナル ) から

gcc -o 実行ファイル名 ソースファイル名

のようにしてコンパイル。

という感じ。

それならOKだと思います。

ただ、問題があり、

デフォルトでは MinGW に依存するようなので、

手元にないので 忘れましたが、

スタティックリンク ( -static... だったかな? ) を

コンパイル時 ( あるいはリンク時? ) に指定する必要があるようですが。

それか、VC++を使ったほうが無難ですよ。

ほとんどの情報が VC++向きですし。

投稿2017/01/17 07:19

BeatStar

総合スコア4962

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

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

0

いつもはcygwin上でmingwを使用していて、最近は単体のmingwは使用していないんですが。

mingwは、STLライブラリはデフォルトでは動的リンクされますので、実行時には「libstdc++××.dll」(「××」は、バージョンによって違います)が環境変数PATHで設定されているディレクトリのいずれかに存在していなければなりません。

参考にされているサイトの、以下の環境設定の説明通りに正しく設定されているか、確認してください。

システム環境変数の設定。

OSにパスを通す。
スタートボタン=>コントロールパネル=>システム=>システムの詳細設定
システムのプロパティというウィンドウが開く。
詳細設定というタブから、環境変数というボタンをクリック。
システム環境変数のPathをマウスで選択してから編集ボタンを押す。

Pathの先頭にインストールしたフォルダを追加する。
自分が設定したPathは、
Y:\2016\mingw\bin;Y:\2016\mingw\msys\1.0\bin;
と追加した。

path文字列

Y:\2016\mingw\bin;Y:\2016\mingw\msys\1.0\bin;Path文字列
というような形になる。

特に「Y:\2016」は、説明されている人固有の設定で、これはあなたの環境(mingwをインストールしたディレクトリ)に合わせて設定しなければなりませんが、そのあたりに間違いはありませんか?


もしくは、静的リンクするという手段もあります。
コマンドラインから、

text

1g++ hoge.cpp -static

というように、リンク時に「-static」オプションを付けると静的リンクされますが、SublimeTextは使ったことがなく、SublimeText上でのやり方は知りませんので、これ以上は説明できませんので、あしからず。
(他の方もおっしゃっていますが、mingw単体で説明しているサイトを参考になさったほうがいいと思います)

投稿2017/01/11 16:03

katsuko

総合スコア3536

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

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

0

ベストアンサー

こんにちは。

普通にg++ ソース.cppでコンパイルしてa.exeで実行したら、通常はエラーなく起動できる筈です。

エラーメッセージにbasic_stringの名前が含まれています。解りにくいのですが、これはstd::stringのことです。

そして、test.exeはcl_cppさんが開発されたプログラムでしょうから、それが標準ランタイムの関数を外部から使えるようにexportしていないのは普通のことです。なのにそのエラーメッセージを出している「何か」はそれを期待しています。

さて、Sublime Textはテキスト・エディタですが、噂によると統合開発環境的な機能も持っているそうなので、その「何か」はSublime Textではないでしょうか?
もし、そうであればその設定に何かミスがあるのではないかと思います。

恐らく、Sublime TextにMinGWのインストール先のパス等を設定されていると思います。
それらの設定、および、どのような操作でコンパイルし、どのような操作でtest.exeを起動したのか記載されれば、Sublime Textを使ったC++開発に詳しい方がいれば回答あるかも知れません。

私はすいません、Sublime Textを使ったことはないので、お役に立てない可能性が高いです。

投稿2017/01/10 15:30

Chironian

総合スコア23272

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

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

退会済みユーザー

退会済みユーザー

2017/01/11 11:41

SublimeText3の設定についていろいろと試してみましたが、やはり解決できそうにありません。もしよろしければChironianさんがC++での開発にどのようなエディタ、コンパイラをお使いになっているか教えていただけますか?場合によってはそちらを導入してみようと考えているのですが・・・
Chironian

2017/01/11 12:58

WidowsならVisual Studioが一番情報が多くてスムーズと思いますよ。 後、最近、C++の入門講座を始めました→http://theolizer.com/category/cpp-school1/ ここで、Visual Studioとgcc+Code::Blocksの導入方法を解説してます。 またこれらを選択した理由なども書いてますので、もしよかったら参考にして下さい。
退会済みユーザー

退会済みユーザー

2017/01/11 13:05

開発環境はやはりVisual Studioを選ぶほうがスムーズですかね。PCのHDD容量とも相談しながら、Visual Studioでの開発に変えてみようと思います。講座もぜひ参考にさせていただきたいです。返信していただきありがとうございました。
Chironian

2017/01/11 13:19 編集

HDDの容量が厳しいのでしたら、MinGW単体+エディタと言う選択肢もあります。 私の講座では、それにCMakeを使ってビルド・プロジェクトを生成してます。 CMakeの基本的な使い方は本当に簡単ですから、これを使うとお手軽にビルド・プロジェクトを作れるので楽できます。 (CMakeはSublimeText2をサポートしてますが、こちらは私はさっぱりです。 https://cmake.org/cmake/help/v3.5/generator/Sublime%20Text%202.html) 統合開発環境が必要でしたら、Windows用にもCode::Blocksはあります。CMakeが直接サポートしていますし、使い勝手はなかなかよいです。 講座ではlinux向けにCode::Blocksも解説してます。基本的な使い方はWindows用も同じ筈です。
退会済みユーザー

退会済みユーザー

2017/01/11 13:35

なるほど・・・ではそれも試してみようと思います!教えていただきありがとうございました。
guest

0

見た感じ、文法上は問題なさそうですね。コンパイル時の状況とか実行環境の方を詳しく書いたほうがいいと思います。

投稿2017/01/10 14:53

HogeAnimalLover

総合スコア4830

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

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

退会済みユーザー

退会済みユーザー

2017/01/10 14:57

状況や実行環境、というと、どういったことでしょうか?まだ日が浅いので、実行環境、といっても何について書けばいいのかわからず・・・もしよろしければその点に関しても教えていただけると嬉しいです。
HogeAnimalLover

2017/01/10 15:00

コンパイルした時の具体的な状況(コマンドラインからg++コマンドを入力した等)やプログラムの起動の仕方(実行ファイルをダブルクリックした等)がこの例です。
退会済みユーザー

退会済みユーザー

2017/01/11 10:11

なるほど!わざわざありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問