0

在 C 中,当使用FILEstruct from时stdio.h,如果程序员试图打开文件,当前工作目录将相对于构建目录。

是否有某种设置(可能是编译器标志),我可以使用它来允许在编译或运行时将 CWD 设置为源目录?最好是一种从 Windows 到 *nix 的跨平台方法,但如果这不可行,我们就说 *nix。

我目前在 Linux 中工作,使用 GCC/G++,使用没有 Qt 库的 qmake。

FILE此外,我使用 C IO 方法而不是 C++ 方法的主要原因std::ifstream只是个人喜好,以防万一有人问。

4

1 回答 1

1

在您的 .pro 文件中,您可以将源目录定义为宏,然后chdir()在源代码中对其进行定义。

# myproject.pro
DEFINES+=SRCDIR=\\\"$$PWD\\\"

# myapp.cpp
int main(int argc, char** argv) {
    if (chdir(SRCDIR)) {
        perror("chdir to " SRCDIR);
    }
    // ... rest of code
}

让它在 Windows 上工作可能涉及摆弄 .pro 文件中反斜杠的数量。

于 2012-10-16T03:44:57.310 回答