許せない心理テスト

非常に初歩的な問題で恐縮なのですが、以下のようなシンプルなプログラムでコンパイルが出来ず困っております。
何がいけないのか、もしくは何をチェックすればよいかを教えて下さい *_*;


program
#include <iostream.h>
int main(void){
cout << "matumoto";
}

----
最初 void main(void)とした所、怒られたため、int ...としましたが、更に以下のようなエラーが出力されてしまいました

未定義の 最初に参照している
シンボル ファイル
std::ios_base::Init::~Init [in-charge]()/var/tmp//ccxj7cux.o
std::ios_base::Init::Init[in-charge]()/var/tmp//ccxj7cux.o
std::cout /var/tmp//ccxj7cux.o
std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)/var/tmp//ccxj7cux.o
__gxx_personality_v0 /var/tmp//ccxj7cux.o
ld: 重大なエラー: シンボル参照エラー。a.out に書き込まれる出力はありません。
collect2: ld returned 1 exit status



[環境]
Solaris 8 gcc
%>>gcc -ver
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.3/specs
Configured with: ../configure --disable-nls --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld
Thread model: posix
gcc version 3.3


すみませんが、宜しくお願い致します。

A 回答 (5件)

gcc ではなくて g++ を使いましょう。



ついでに、エラーとは関係ありませんが
普通はmainの最後に
return 0;
をつけます。
# int main()と言ってますからintを返しましょう。
# 0を返すのは正常終了を表します。
    • good
    • 0

stdc++をリンクしてみてください。


Solarisは触ったことが無いので、同じかどうかわかりませんが。

gcc hoge.cpp -lstdc++
    • good
    • 0

gcc 3.3.1 (cygwin)でコンパイルしてみましたが、とりあえずエラーにはなりませんでした。


古いヘッダじゃなくて新しいヘッダを使いなさいとコンパイラがメッセージを出してるようなので試してみてはいかがでしょうか。

In file included from /usr/include/c++/3.3.1/backward/iostream.h:31,
from hoge.cpp:1:
/usr/include/c++/3.3.1/backward/backward_warning.h:32:2: warning: #warning This
file includes at least one deprecated or antiquated header. Please consider usin
g one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples
include substituting the <X> header for the <X.h> header for C++ includes, or <s
stream> instead of the deprecated header <strstream.h>. To disable this warning
use -Wno-deprecated.
    • good
    • 0

失礼しました。


No.1はWindowsでのことです。
まだLinuxを導入していないので確認できません。
    • good
    • 0

フリーで最も優れているBorland C++5.5で


問題無くコンパイルと実行ができました。
筋からいけばintをリターンすべきですが問題なさそうです。
古い書式なので新しい書式では
#include <iostream>
using namespace std;
void main(void){
cout << "matumoto";
}

となります。
    • good
    • 0

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


おすすめ情報