dポイントプレゼントキャンペーン実施中!

質問があるのですがよろしくお願いしします。
プラットフォームは Windows HOME です。

MinGWでC++のhelloworld.cppという名前のプログラム
------ここから-----------
#include <iostream>

using namespace std;

int main(){
cout <<"Hello World!!\n";
return 0;
}
-------ここまで-----------

を、gcc helloworld.cpp とWindowsのコマンドプロンプトから打ってコンパイルしようとしたのですが、

undefined reference to std string::size() const
undefined reference to std string::operator[](using int) const
undefinrd reference to std::cout
undefinrd reference to std::basic_ostream<char, std::char traits<char> >&, char const*)
undefinrd reference to std::ios_base::Init::()
undefinrd reference to std::ios_base::~Init::()

などのエラーが出て、コンパイルできません・・

hello.cという名前のC言語プログラム

--------ここから------
#include<stdio.h>
int main(void){
printf("Hello GCC World on Windows!!\n");
}
------ここまで-------

は、gcc hello.c で正常にコンパイルでき、生成したexeファイルも正常に動きます。

また、eclipse CDT上からc++プログラムをMinGWでコンパイルすることもできるのですが・・
なぜかWindowsのコマンドプロンプトからc++プログラムをコンパイルしようとするとエラーが出てしまいます。(C言語のプログラムでもエラーが出ることが時々あります。)

どなたか詳しい方いらっしゃいましたらご教授頂けると幸いです。
よろしくお願いします。

A 回答 (2件)

1)


gccなら
gcc -o hello hello.cpp -lstdc++
-oは出力
-lstdc++はlibstdc++をリンクします
の意味です。
2)
g++なら
g++ -o hello_1 hello.cpp
どちらも
$ hello
Hello World!!
になります
    • good
    • 2

No.1です


訂正です
2)
g++なら
g++ -o hello_1 hello.cpp

これでは、hello_1.exeができますので
g++ -o hello hello.cpp
ですね
すみません
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
教えていただいたとおりやって解決しました。
C++のソースをコンパイルするにはg++を使わなければいけなかったのですね・・
ありがとうございましたm(_ _)m

お礼日時:2008/01/01 01:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!