c++ - C/C++ - 以编程方式查找 Makefile 文件路径

标签 c++ c shell makefile

我正在尝试读取 C/C++ 中的“Makefile

它的工作原理是: system("make -C/Users/MyNAME/Desktop/Folder flash");

ma​​ke flash”是运行文件的命令,/Users/MyNAME/Desktop/Folder

文件路径。这段代码可以工作,但是我如何在本地创建文件路径,以从同一个读取

调试文件夹(程序所在的位置)而不手动编写它?

最佳答案

您可能想要 int chdir(const char *path);功能。示例:

#include <unistd.h>

/* ... */

chdir("/Users/MyNAME/Desktop/Folder");
system("make flash");

<unistd.h>还有很多其他有用的功能,它应该存在于任何基于 POSIX 的系统上。 Check here为大名单。

编辑:如果路径不是恒定的,您可能希望将其作为命令行参数提供给程序:

#include <unistd.h>
#include <stdio.h>

/* ... */

int main(int argc, char* argv[])
{
    if(argc < 2)
    {
        fprintf(stderr, "Usage: %s <path>\n", argv[0]);
        return 1;
    }

    chdir(argv[1]);
    system("make flash");

    /* ... */

    return 0;
}

使用类似 ./foo /Users/MyNAME/Desktop/Folder 的行运行它.

关于c++ - C/C++ - 以编程方式查找 Makefile 文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8578086/

相关文章:

C++实例化问题

c - 如何读取不确定大小的 C 字符数组?

linux - 删除除最后 5 个文件夹之外的所有文件夹的 Shell 脚本

shell - 使用 wget 递归获取其中包含任意文件的目录

C++ 在结构中重载 operator()

c++ - DirectX 颜色 : Why can't it be a float?

c++ - 重置嵌入式 ruby​​ 解释器的状态

c - 在 C 中删除整个链表 - 为什么不使用引用指针?

c - 如何计算我的 C 函数的时间复杂度

linux - 如何分离 bash 文件生成的每个命令的输出?