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

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

ただいまの
回答率

92.00%

  • C++

    1752questions

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

  • sublimetext

    135questions

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

  • MinGW

    19questions

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

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

解決済

回答 4

投稿 2017/01/10 23:30 ・編集 2017/01/11 20:59

  • 評価
  • クリップ 0
  • VIEW 330

cl_cpp

score 4

前提・実現したいこと

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++を気軽に実行する環境を作る。

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

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

    クリップした質問はマイページの「クリップ」タブからいつでも見ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

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/11 00:30

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2017/01/11 20:41

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

    キャンセル

  • 2017/01/11 21:58

    WidowsならVisual Studioが一番情報が多くてスムーズと思いますよ。

    後、最近、C++の入門講座を始めました→http://theolizer.com/category/cpp-school1/
    ここで、Visual Studioとgcc+Code::Blocksの導入方法を解説してます。
    またこれらを選択した理由なども書いてますので、もしよかったら参考にして下さい。

    キャンセル

  • 2017/01/11 22:05

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

    キャンセル

  • 2017/01/11 22: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 22:35

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

    キャンセル

0

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

投稿 2017/01/10 23:53

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2017/01/10 23:57

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

    キャンセル

  • 2017/01/11 00:00

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

    キャンセル

  • 2017/01/11 19:11

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

    キャンセル

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をインストールしたディレクトリ)に合わせて設定しなければなりませんが、そのあたりに間違いはありませんか?


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

g++ hoge.cpp -static

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

投稿 2017/01/12 01:03

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

0

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

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

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

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

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

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

という感じ。

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

ただ、問題があり、

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

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

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

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

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

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

投稿 2017/01/17 16:19

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

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

ただいまの回答率

92.00%

関連した質問

同じタグがついた質問を見る

  • C++

    1752questions

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

  • sublimetext

    135questions

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

  • MinGW

    19questions

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

閲覧数の多いC++の質問