2016-08-08 40 views
-1

現在、私は何かをする実行可能な実行可能プログラムを作成しました。しかし、私の問題はフォルダ内の.ccファイルを一度にコンパイルする

[email protected]:~/build$ bin/lel simple-loops.cc -- 

bin/lelを入力して、一度に私の実行可能プログラムできるだけ入力1 .ccファイルが実行可能なプログラムsimple-loops.ccがファイルであるされていること。

フォルダ内にファイルを追加して、フォルダ名を入力するだけで自分のプログラムがフォルダ内のすべてをコンパイルできるようにすることはできますか?

たとえば、

[email protected]:~/build$ bin/lel (folder name) -- 
+0

インターネットで「各ファイルディレクトリのlinux」を検索します。 –

+0

@thomasmatthews私はBOOST C++ライブラリを使用しようとしましたが、それは私のためには機能しません。 – HiWorld

+0

フォルダ内のファイル名についてはどうですか?/ *。cc; do bin/lel $ filename;を実行します。済んだ? – immibis

答えて

0

はい、可能です。 Linuxでは、opendir,readdirおよびclosedirを使用して、ディレクトリ内のすべてのファイルを一覧表示できます。例:

for (int i = 1; argv[i]; ++i) { // N.B. don't start at 0 
    processFile(argv[i]); 
} 

次にあなたが実行することができます:

DIR *dir = opendir("name-of-folder"); 
// if dir is NULL that means the open failed, like with fopen 
struct dirent *dirent; 
while((dirent = readdir(dir)) != NULL) 
{ 
    printf("Found a directory entry: %s\n", dirent->d_name); 
} 
closedir(dir); 
+0

@HiWorld次に、静的に宣言されたものを渡すのではなく、ターミナルに入力したものを 'opendir'に渡しますか? – immibis

1

これを行うための通常の方法は、ユーザーが必要に応じて、シェルを使用すると、ワイルドカードなどを展開することができ、任意の数の引数を渡すようにすることですそれで

./a.out *.cc 

あなたが望む動作を得るために。私はあなたがファイル(バックアップファイルと..など)を処理する必要はないと推測しています。

関連する問題