0

我在这个站点运行这个 SIFT 程序:https ://github.com/sanchom/sjm

在我运行我的程序之前,所有的东西都很顺利:

$ python extract_caltech.py --dataset_path=[path_to_your_101_Categories_directory] \
--process_limit [num_processes_to_spawn] --sift_normalization_threshold 2.0 -- sift_discard_unnormalized \
--sift_grid_type FIXED_3X3 --sift_first_level_smoothing 0.66 --sift_fast --sift_multiscale \
--features_directory [path_for_extracted_features]

在输出中,我看到这条线数千次:

ERROR: unknown command line flag 'logtostderr'

我已经按照这里的建议检查了一些解决方案:

https://code.google.com/p/google-glog/issues/detail?id=17&q=glog%20gflags但是

我所做的是GLOG_logtostderr=1在运行程序之前添加:

GLOG_logtostderr=1 ./my_application

但这对我不起作用。

据我所知,它与 Gflags 和 Glog 之间的链接有关。但我还没有关于如何解决它的任何想法。请帮忙。谢谢!

4

2 回答 2

1

我已经解决了我的问题。这是因为 IIRC macports 的 glog 不是用 gflags 构建的,而是 python 脚本集 --logtostderr。因此,只需通过运行脚本从 python 脚本中删除 --logtostderr :

find . -name '*.py' -exec perl -i -p -e 's/--logtostderr//' {} \;

要确定您是否受到影响,请运行

ldd libglog.so

并检查 libgflags 是否在输出中。

此站点建议的解决方案:

https://code.google.com/p/google-glog/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&groupby=&sort=&id=206

于 2014-05-10T04:30:28.833 回答
1

$GLOG_logtostderr=1没有做你所期望的。$name意思是“用环境变量的值替换它name”。但是您想定义一个新变量。改用这个:

GLOG_logtostderr=1 ./my_application

(即省略$)。

于 2014-05-09T10:02:42.537 回答