windowsのコンパイラーで正しく実行されたのに、gccのコンパイラーでエラーがでたソースコードです。ファィル名test.c です。Linux(Red Hat9) gccです。windowsのコンパイラーはCPad for Borland C++Compilerです。
#include <stdio.h>
void main() //intからvoidに変更した
{
int i, j;
for (i=1; i<=9; i++){
printf("%2d ",i); //%2dで、iが2桁に表示
}
printf("\n");
printf("***************************\n");
//この罫線もどきの書き方はダサいので工夫してください
for (i = 1; i<=9; i++){
for (j = 1; j<= 9; j++) {
printf("%2d ", i*j);
if (j == 9)
printf("\n"); //1行表示後改行
}
}
return; //voidにしたので0を取った!
}
これがLinux(RedHat9)gccでは以下のエラーが出ます。
(test.c: 関数 `main' 内:
test.c:4: 警告: `main' の戻り値の型が `int' ではありません)
なぜ、同じソースコードでエラーが起こるのですか?
Linux gccでは、この場合`int' 以外の何が必要なのでしょうか?
以上よろしくお願いします。
No.3ベストアンサー
- 回答日時:
> LinuxのGUIの画面ではtestはバイナリーになっていて、何かのプログラムと関連付けを要求します。
アイコンダブルクリックとかで実行しようとしてるのでしょうか?普通にコンソールで実行しましょう。関連づけなんて必要ないです。
> 念のため、オッシャルように./.を着けてやっても、(sshから)エラーが返されます。
"./."ではなく"./"です。つまり"./test"と実行してください。ただし、実行ファイルのディレクトリにいないとダメです。別のディレクトリにいるときはcdするか、フルパスで実行してください。
SSHに関してはよくわかりません。リモートで実行するするということなのかな?とりあえずローカルで試してみてください。ローカルでうまくいくのにリモートでうまくいかないということなら再度質問しましょう。問題を解決するコツはできるだけ単純化して考えることです。
このあたり、自分でプログラムを組む、組まないにかかわらず、Linuxを使用する場合の基本です。がんばって勉強してください。健闘を祈ります。
./testで成功しました。ありがとうございました。
リモートで動かしているのは、サーバー構築のためにずっとwindowsからsshを通じてputty等の画面でやっています。動いているLinuxのcpuが遅い場合は、ラクでした。普段はLinuxのGUI画面は使用していませんので!
とりあえず、お礼まで
No.2
- 回答日時:
> Linuxでは、出来ているということはわかりますが、実行の方法が分かりません。
出来たファイルはa.outとかでしょうか?
その場合、カレントのパスなどを付けて、
./a.out
のようにしないと実行できない設定になっている場合があります。最近は割りと標準。
--
ファイルを片っ端から削除する「ls」という名前のプログラムがあったような場合、誤動作を避けるような意味があります。
この回答への補足
ls
コマンドでみると、test test.cがあります。LinuxのGUIの画面ではtestはバイナリーになっていて、何かのプログラムと関連付けを要求します。適当な、テキスト画面が出るものと、関連付けしてみましたが、黒い画面が、一瞬立ち上がったきりでした。
a.outでは ありません。念のため、オッシャルように./.を着けてやっても、(sshから)エラーが返されます。そのようなファィルはナイト!
No.1
- 回答日時:
int main
として下さい。みんなの幸せのためです。
KOHNO TAKASHI HOME PAGE - C言語 FAQ 日本語訳 - 11章 ANSI/ISO規格C
http://www.kouno.jp/home/c_faq/c11.html
-----以下引用-----
11.12:
main()をvoidとして宣言して「mainの戻り値がない」という目障りな メッセージを消すことができるか。
A:
できない。main()はintを戻り値とし、(適切な型の)0個か2個の引数 を持つと定義しなければならない。exit()を呼んでもまだ警告が出る のであれば、冗長であるがreturn文を挿入するしかない(あるいは使 える環境にいるのであれば「ここには届かないよ:NOTREACHED」命令 を使う)。
References:
ANSI Sec. 2.1.2.2.1, Sec. F.5.1; ISO Sec. 5.1.2.2.1, Sec. G.5.1; H&S Sec. 20.1 p. 416; CT&P Sec. 3.10 pp. 50-51.
-----以上引用-----
--
> なぜ、同じソースコードでエラーが起こるのですか?
windowsのコンパイラーでエラーが起きないのは、ちょっとした優しさ、親切心みたいなもんです。
エラーチェックのレベルを厳しくしても大丈夫でしょうか?
参考URL:http://www.kouno.jp/home/c_faq/c11.html
この回答への補足
int mainとしてreturn 0;にもどしたら、出来ました。
色々な規格がcにもあるのですね!
できた実行ファィルがgccでは、この場合.exeなしの
testですが、windosでは、即、実行してくれますが、Linuxでは、出来ているということはわかりますが、実行の方法が分かりません。
Linuxの方に戻り、ファィルの関連付けをやっても、あまり正確には、実行できません。この場合、sshでwindowsから操作して”test”ファィルを実行させるにはどうすればいいのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# プログラミング実行後の表示される値を答えよ #include<stdio.h> void main( 7 2022/05/20 00:07
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TortoiseSVNにてサーバー上の共...
-
このセルには2桁年で表示され...
-
ホームページビルダーV9 エラ...
-
TortoiseSVNにて、コミットがで...
-
AfterEffects6のエラー。『Afte...
-
LANプリンタの不具合 HEX DAMP?
-
書き込みエラーの少ないDVD...
-
Windows updateでエラー8024401...
-
TEXの下付き文字
-
DVDFab8のエラーについての質問...
-
DVD Styler トラブル解決方法
-
人生を再インストールできません
-
ACCESSからEXCELの PasteSpecia...
-
Norton Ghost 2003で外付けHDD...
-
ImgBurn使用時のエラーについて
-
Texでどうしても解決できないエ...
-
EOMONTHについて
-
Fire File Copyのコマンドライン
-
DVDリッピングで映像に乱れが生...
-
calibre変換エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DVD Styler トラブル解決方法
-
ImgBurnエラー
-
アンインストールができない。
-
N88互換BASIC for Windows95の...
-
ImgBurn ベリファイでエラーが...
-
TortoiseSVNにてサーバー上の共...
-
TortoiseSVNにて、コミットがで...
-
Texでどうしても解決できないエ...
-
このセルには2桁年で表示され...
-
DVDのベリファイとは何ですか?
-
ImgBurn使用時のエラーについて
-
ACCESSからEXCELの PasteSpecia...
-
TEXの下付き文字
-
CrystalDiskInfoのSSDに関して。
-
DVD書き込みの際にベリファ...
-
Windows updateでエラー8024401...
-
BunBackupでバックアップのエラ...
-
社内プロジェクトのネーミング...
-
ExcelのSUM関数と+の違い
-
DESTROYでのHDD消去について
おすすめ情報