【发布时间】:2012-10-11 16:09:02
【问题描述】:
在 C 中,当使用 stdio.h 中的 FILE 结构时,如果程序员尝试打开文件,当前工作目录将相对于构建目录。
是否有某种设置(可能是编译器标志),我可以使用它来允许在编译或运行时将 CWD 设置为源目录?最好是一种从 Windows 到 *nix 的跨平台方法,但如果这不可行,我们就说 *nix。
我目前在 Linux 中工作,使用 GCC/G++,使用没有 Qt 库的 qmake。
另外,我使用 C FILE IO 方法而不是 C++ 的 std::ifstream 的主要原因只是个人喜好,以防万一。
【问题讨论】:
-
在什么环境下路径是相对于构建目录的?这很异国情调。在大多数情况下,标准行为完全符合您的要求。
-
这很有趣,实际上:我正在使用 Qt Creator,我的构建设置设置为调试。当我使用
std::ifstream对其进行测试时,我能够使用相对路径打开文件。但是,使用FILE,它将默认将 cwd 设置为构建目录。
标签: c++ linux makefile cross-platform qmake