誤ったコンパイルとリンケージの結果、私のCソースファイルの1つが削除されることに気付きました。なぜこのコンパイルとリンケージが正しく行われないと、Cソースファイルが削除されますか?
ソースファイルが2つあり、ヘッダファイルがtest1.c
,test2.c
、header.h
であるとします。私は誤ってコンパイルし、シェルコマンドcc -std=c99 -Wall -Werror -pedantic -o test1.c test2.c
でこれらのファイルをリンクしようとします。
Undefined symbols for architecture x86_64: "_main", referenced from: implicit entry/start for main executable ld: symbol(s) not found for architecture x86_64
:
この後、ファイルtest1.c
が削除されます。
私は削除の原因とその理由について興味がありますか?
ありがとうございます。
'-o test1.c' '-o'オプションは出力をそのファイルに入れるようにコンパイラに指示します。あなたが[manual](https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html)を読んだら、自分で解決することができるもの – kaylum
'-o'オプションに関するgccのドキュメント不明ですか? – Olaf
@Olaf文書の中でこの削除の理由を説明していますか?私は '-o'が何をしているのか尋ねていませんでした。私はファイルを削除してエラーを表示するのではなく、ファイルを削除する理由を尋ねていました。 –