Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compilation 编译Glog时出错_Compilation_Gflags_Glog - Fatal编程技术网

Compilation 编译Glog时出错

Compilation 编译Glog时出错,compilation,gflags,glog,Compilation,Gflags,Glog,在运行之后运行“make”编译glog时遇到问题。/configure 然后我得到一个错误: 架构x86_64的未定义符号: “测试::内部::StrStreamToString(std::u 1::basic_stringstream,std::u 1::allocator>)”,引用自: 测试::内部::字符串测试::内部::在logging\u unittest-logging\u unittest.o中使用StreamableToString(void const const&) 测试:

在运行之后运行“make”编译glog时遇到问题。/configure 然后我得到一个错误:

架构x86_64的未定义符号: “测试::内部::StrStreamToString(std::u 1::basic_stringstream,std::u 1::allocator>)”,引用自: 测试::内部::字符串测试::内部::在logging\u unittest-logging\u unittest.o中使用StreamableToString(void const const&) 测试::内部::字符串测试::内部::在logging\u unittest-logging\u unittest.o中使用StreamableToString(int const&) ld:找不到架构x86_64的符号 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用) make:[logging_unittest]错误1

我正在Mac OS X上使用glog-0.3.3。 那么,在编译glog时,我该如何进行测试呢

在另一个上下文中,我使用Macport安装了glog和gflags,然后运行了一个小程序。它将生成一个错误: “错误:未知的命令行标志'logtostderr'”


我相信这就是链接到GFLAG的问题所在。那我该怎么修呢。谢谢

GLog需要在“google”名称空间中编译GFlags,而不是现在默认的“GFlags”名称空间

为了设置这个名称空间,您必须从源代码编译和安装gflags,并将gflags_名称空间变量设置为“google”

以下是我在Kubuntu 14.04中遵循的步骤,应该类似于在MacOSX中应该执行的操作。这些将把GFlags源代码放在/usr/local/src中,并将库安装在/usr/local/lib&include目录中。最后一个命令(ldconfig)在系统中注册库

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
或者,您可以在GLog源中应用以下修补程序(附在上次答复中):

它基本上在GLogs单元测试源文件的include之后使用gflags的名称空间,如下所示:

#ifdef HAVE_LIB_GFLAGS
#include <gflags/gflags.h>
using namespace gflags;
#endif
#如果定义有_LIB\u GFLAGS
#包括
使用名称空间gflags;
#恩迪夫