2014-05-10 13 views
5

için gflags benim C++ uygulama için google günlüğü kütüphanesi Glôg yapılandırmak çalışıyorum ama aslında işe almak konusunda herhangi bir bilgi bulamıyorum ve hata iletileri daha az faydalı. yapılandır Glôg google ve C++

Bu

ben yürütmeye çalışıyorum örnek kod, ve ben ./myapp --v=2 yürütme, ama ben "HATA: Bilinmeyen komut satırı işareti 'v'" olsun. herhangi bir belge bu kütüphane için var mı, yoksa herkes doğru nasıl yapılandırılacağı biliyoruz?

#include <glog/logging.h> 
#include <gflags/gflags.h> 

int main(int argc, char** argv) { 
    google::InitGoogleLogging(argv[0]); 
    google::ParseCommandLineFlags(&argc, &argv, true); 

    VLOG(1) << "I'm printed when you run the program with --v=1 or higher"; 
    VLOG(2) << "I'm printed when you run the program with --v=2 or higher"; 
    return 0; 
} 
+0

http://google-glog.googlecode.com/svn/trunk/doc/glog.html de dokümantasyon google 'için çağrı söz etmez :: P arseCommandLineFlags (ve argc, & argv, true); '... ne olur bunu dahil etmezseniz? – mah

+0

Bu kodu eklemezsem, hiçbir komut satırı ayrıştırma gerçekleştirilmez ve günlük kaydı etkinleştirilmez. Google-glog "document" ifadesi, bu aramanın – user3235200

+1

numaralı telefon numarasından bahsedildiği gflags "document" belgesine atıfta bulunmaktadır. Ayrıca, herhangi bir "glog" özel bayraklarının etkili olmayacağı gibi, ilk olarak "ParseCommandLineFlags" öğesini çağırmak en iyisidir (örneğin '--logtostderr = true ') komut satırı bayrakları ayrıştırıldıktan sonra. – phoenix

cevap

7

Glôg yerine şimdi varsayılan "gflags" ad alanının "google" ad alanında derlenmiş gflags ihtiyacı vardır. Eğer derlemek gereken bu ad ayarlamak ve kaynağından gflags yükleyin ve "google" için GFLAGS_NAMESPACE değişkeni ayarlamak için

.

İşte Kubuntu'da 14.04 takip adımlardır ve Mac OSX içinde ne yapması gerektiğini benzer olmalıdır. Bunlar/usr/local/src GFlags kaynağını yerleştirmek ve/usr/lib/yerel & dahil dizinlerde kütüphane kuracaktır. Son komut (ldconfig) sistemdeki kitaplığı kaydeder. GLogs birim testi içerir sonra

https://code.google.com/p/google-glog/issues/detail?id=194

Temelde gflags ait ad kullanan:

cd /usr/local/src/ 
cp /path/to/downloaded/gflags-2.1.1.tar.gz . 
sudo tar xzf gflags-2.1.1.tar.gz 
cd /tmp 
mkdir buildgflags 
cd buildgflags 
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON \ 
-DGFLAGS_NAMESPACE=google -G"Unix Makefiles" /usr/local/src/gflags-2.1.1/ 
make 
sudo make install 
sudo ldconfig 

Alternatif (son cevapta ekli) Glôg kaynağında aşağıdaki yamayı uygulayabilirsiniz şöyle kaynak dosyaları:

#ifdef HAVE_LIB_GFLAGS 
#include <gflags/gflags.h> 
using namespace gflags; 
#endif 
İlgili konular