web-dev-qa-db-ja.com

ubuntu、予期しないトークン `( '付近の構文エラー

仮想マシンでubuntu 18.04でcプログラムを実行したいのですが、次のエラーが表示されます。

./test.c: line 3: syntax error near unexpected token `('
./test.c: line 3: `void main(int argc, char** argv)'

私はこのようにファイルをコンパイルして実行しました:

gcc -o test test.c
./test.c

次を使用してフォルダに許可を与えました:

Sudo chmod a+rwx

私はオンラインで検索しましたが、知っているのは(シェル/ターミナルの特殊文字ですが、エラーなしでコードを書くときにそれを使用する方法を理解/見つけることができませんでした。

誰かがこの問題の解決を手伝ってくれますか?

1
Alex C

gcc -o test test.cでは、-oの後にあるtestフラグは実際の実行可能ファイルの名前であるため、./testを実行する必要があります。 ./test.cを実行すると、シェルはCソースコード(単なるテキストファイル)をシェルスクリプトとして読み取り、現在のシェルの構文に従って実行しようとします(つまり、シェルは、コンパイルされたCコード)。

サイドノートでは、testを実行可能ファイルの名前として使用しないでください。すでに/usr/bin/testがあり、それは後で混乱を招く可能性があります。そして、全体的に個人プログラムにシステム実行可能ファイル名を使用するのは悪い習慣です

2