一次编译文件夹中的.cc文件

时间:2016-08-08 03:21:03

标签: c++ ubuntu

目前我已经创建了一个可行的可执行程序。但我的问题是我的可执行程序只能通过输入

一次输入一个.cc文件
fypj@ubuntu:~/build$ bin/lel simple-loops.cc --

bin/lel可执行程序 simple-loops.cc是该文件。

是否可以在文件夹中添加文件并允许我的程序只需输入文件夹名称即可编译文件夹中的所有内容?

,例如

fypj@ubuntu:~/build$ bin/lel (folder name) --

2 个答案:

答案 0 :(得分:1)

通常的方法是让用户传递任意数量的参数,允许使用shell根据需要扩展通配符等:

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

然后你可以用

运行它
./a.out *.cc

获取您想要的行为。我猜你不想处理每个文件(包括备份文件和..等)。

答案 1 :(得分:0)

是的,有可能。在Linux上,您可以使用opendirreaddirclosedir列出目录中的所有文件。例如:

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);