3

コマンド.cを使用してファイルをコンパイルすると、実行可能ファイルが作成されます。現在のディレクトリ内にファイルが作成されることに気付きました。システム上のどこにいても、ファイルと同じディレクトリにファイルを作成する方法はありますか?cca.outa.outa.out.c

たとえば、現在のパスが~/desktop次のとおりで、次のコマンドを入力するとします。

cc path/to/my/file/example.c

a.outディレクトリにファイルを作成します~/desktopa.outでファイルを作成したいpath/to/my/file/a.out

4

4 に答える 4

5

cc を呼び出すたびに -o スイッチを使用する必要があります。

cc -o path/to/my/file/a.out path/to/my/file/example.c

または、次のようなラッパー スクリプトを作成できます。

mycc

#!/bin/bash

dirname=`dirname "$1"`
#enquoted both input and output filenames to make it work with files that include spaces in their names.
cmd="cc -o \"$dirname/a.out\" \"$1\""

eval $cmd

その後、呼び出すことができます

./mycc path/to/my/file/example.c

そして、それは順番に呼び出します

cc -o "path/to/my/file/a.out" path/to/my/file/example.c

もちろん、mycc を $PATH に入れることができるので、次のように呼び出すことができます。

mycc path/to/my/file/example.c
于 2010-09-01T12:09:06.700 に答える
2

「-o」フラグを指定して、出力ファイルを定義できます。例えば:

cc path/to/my/file/example.c -o path/to/my/file/a.out
于 2010-09-01T12:02:36.437 に答える
1

はい-o

cc path/to/my/file/example.c -o path/to/my/file/a.out
于 2010-09-01T12:02:10.353 に答える
1

探しているものではないかもしれませんが、次の-oように siwtchを使用してコンパイルの出力を簡単にリダイレクトできます。

cc -o /a/dir/output b/dir/input.c

必要なものをアーカイブする方法はわかりませんが(自動置換)、次のようなbashで実行できると思います:(私はスクリプトが苦手で、テストされておらず、間違っている可能性があります):

i = "a/path/to/a/file.c" cc -o ${i%.c} $i

これにより、 i で指定されたファイルが同じディレクトリの出力ファイルにコンパイルされますが、.c-suffix が削除されます。

于 2010-09-01T12:02:47.847 に答える