【发布时间】:2014-10-26 19:23:43
【问题描述】:
编辑:以下代码通过 Microsoft Visual Studio 2013 运行
我有以下脚本:
#include "stdafx.h"
#include <iostream>
#include <boost/filesystem.hpp>
using namespace boost::filesystem;
int main(int argc, char* argv[])
{
if (argc < 2)
{
std::cout << "Usage: tut1 path\n";
return 1;
}
std::cout << argv[1] << std::endl;
std::cout << "File Size is: " << file_size(argv[1]) << std::endl;
return 0;
}
但是当我使用ctrl+f5 运行它时,我收到了这条消息(这是由代码本身的 if 条件预测的:
Usage: tut1 path
参数的数量似乎低于 2。
为什么会这样?我应该如何避免这个问题?
编辑:
当我删除以下行时:
std::cout << "File Size is: " << file_size(argv[1]) << std::endl;
我的控制台上打印了“Filing.cpp”,这意味着
argv[0] 的值是 Filing.cpp,进一步表明 argv 正在正确地从项目调试器的命令参数中获取命令。
但是当我再次添加该行时,我看到了消息"Filing.exe not found or not built by the last incremental link;"
【问题讨论】:
-
大概是从 IDE 运行它。那是哪个 IDE?
-
@MikeSeymour:
#include "stdafx.h"不言自明:-) -
是的,Microsoft Visual Studio 2013。
-
你在调试器中设置了命令行吗?