【问题标题】:gflags arguments extraction doesn't work on debug mode (C++)gflags 参数提取在调试模式下不起作用(C++)
【发布时间】:2018-04-26 08:03:40
【问题描述】:

我正在使用 gflags 解析 C++ 应用程序(v140、x64)的命令行参数。 出于某种原因,我在发布和调试模式下得到不同的结果。 在调试模式下,无法识别参数。

代码

#include <gflags/gflags.h>
DEFINE_string(str_arg, "default param value", "string value");

int main(int argc, char *argv[])
{
    std::cout << "str value before glog init: " + FLAGS_str_arg << std::endl;
    //third parameter is set to false. setting it to true doesn't solve the problem
    google::ParseCommandLineFlags(&argc, &argv, false);
    std::cout << "str value after glog init: " + FLAGS_str_arg << std::endl;
}

执行命令

app.exe -str_arg new_val

在发布模式下输出

str value before glog init: default param value
str value after glog init: new_val

在调试模式下输出

str value before glog init: default param value
str value after glog init: default param value

【问题讨论】:

  • 我的水晶球说你在使用调试器时忘记设置参数。这是一个额外的步骤,项目 > 属性 > 调试,“命令参数”设置。还要确保对话框顶部的配置和平台组合框设置正确,这经常出错。
  • @HansPassant 谢谢,但我通过命令行工作,所以情况并非如此

标签: c++ gflags


【解决方案1】:

我遇到了同样的问题,在调试模式下没有显示字符串。为了解决这个问题,我必须编译 gflags release 和 debug 库。 在 install/bin 目录中现在有:

  • gflags.dll
  • gflags_debug.dll

【讨论】:

    猜你喜欢
    • 2019-01-07
    • 1970-01-01
    • 2023-03-15
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多