質問

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

は、たとえば私の現在のパスが~/desktopであれば、私は、コマンドを入力します

cc path/to/my/file/example.c
それはa.outディレクトリ内~/desktopファイルを作成します。私はそれがa.outpath/to/my/file/a.outファイルを作成したいと思います。

役に立ちましたか?

解決

あなたは-oスイッチを使用すると、CCを呼び出すたびに使用する必要があります

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

あなたのようにそれを呼び出すことができますので、あなたは$ PATHにmyccを置くことができ、もちろんます:

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

他のヒント

あなたは、出力ファイルを定義するための「-o」フラグを与えることができます。たとえばます:

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

はい、-oでます。

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

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

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

私はあなたが(自動交換)何をしたい、archieveする方法を、知りませんが、私はあなたがこのようないくつかのbashでそれを行うことができますね。(私は、スクリプトでテストされていない貧困層だと間違っている可能性があります)。

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

これは、同じディレクトリ内の出力ファイルにIで指定されたが、.C-接尾辞を除去したファイルをコンパイルする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top