gpt4 book ai didi

c++ - 将 CWD 设置为源目录,而不是构建目录

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:34 28 4
gpt4 key购买 nike

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

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

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

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

最佳答案

在您的 .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 文件中反斜杠的数量。

关于c++ - 将 CWD 设置为源目录,而不是构建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12843936/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com