我继承了一个项目,并且在linux上开发了初始构建。我不知道这是否重要,但我想我会分享它。
为了在Windows机器上调试项目,我首先使用win7上的CMakeGUI创建一个Visual Studio Solutions文件,使用Visual Studio 2013打开项目,然后设置启动项目并构建我感兴趣的项目。到目前为止一切都还好。现在是令人困惑的部分。
在加载时,程序假定读取一个文件,让我们调用它in.dat
并在const char * inputFileName
中声明,然后该变量通过一个类,该类尝试打开文件以获取数据。
fstream fs;
fs.open(inputFileName.c_str(), fstream::in);
if(!fs.is_open())
{
std::cout << "Cannot open input file!" << std::endl;
exit(0);
}
这是我难倒的...当我尝试调试应用程序时,由于某种原因放置在调试文件夹中的文件无法打开即fs.is_open() returns false
但是如果我直接进入项目的调试文件夹,在VS之外,运行它按预期运行的可执行文件,即fs.is_open() now returns true
。
答案 0 :(得分:0)
您的调试器工作目录默认为项目的根目录,二进制文件位于\ debug子目录中,实际上导致输入文件的路径错误。
将调试器的工作目录设置为\ debug。 这里有更多信息: https://msdn.microsoft.com/en-us/library/kcw4dzyf(v=vs.120).aspx