5

私はこの問題を抱えていますmakefile

gcc -c src/uno.c src/uno.h -o src/uno.o
gcc: fatal error: cannot specify -o with -c, -S or -E with multiple files

.o複数のファイルを含むファイルを作成するにはどうすればよいですか?

4

1 に答える 1

9

ヘッダー ファイル (src/uno.hこの場合) はファイル内から参照されるため、コマンド ラインで再度名前を付けないでください。

gcc -c src/uno.c -o src/uno.o

フラグを使用して、それらを見つけるディレクトリに名前を付ける必要がある場合があります-Iしかし#include "uno.h"、ソースにある場合、gcc は同じディレクトリでファイルを検索するため、既にファイルを見つけますuno.c

複数のファイルをコンパイルして、それらを単一のバイナリにリンクできます。

gcc -o myApp myAppMain.c myAppUtil.c myAppStuff.c

ただし、中間オブジェクトが保持されないため、単一のソースが変更された場合はすべてを再コンパイルする必要があります。オブジェクト ファイルを操作する場合、翻訳単位ごとに常に 1 つのコンパイラ呼び出しがあります。

ヘッダーをプリコンパイルする機能がありますが、その場合、ファイルではなくヘッダーのみをコンパイルしuno.cます。いずれにせよ、これはかなり高度なので、おそらく必要ないでしょう。

于 2012-11-07T12:03:55.443 に答える