Pheonix MapReduce - Wordcount 错误及解决方法

8 篇文章 0 订阅
6 篇文章 0 订阅

系统:KUbuntu11.04

调试错误

g++ -g -Wall -O3 -D_LINUX_  -DMMAP_POPULATE -fstrict-aliasing -Wstrict-aliasing  -D__x86_64__ -c word_count.cpp -o word_count.o -I../../include
In file included from ../../include/map_reduce.h:37:0,
                 from word_count.cpp:39:
../../include/stddefines.h: 在函数‘void get_time(timespec&)’中:
../../include/stddefines.h:86:19: 警告: variable ‘noskip’ set but not used [-Wunused-but-set-variable]
In file included from word_count.cpp:39:0:
../../include/map_reduce.h: 在成员函数‘int MapReduce<Impl, D, K, V, Container>::run(std::vector<MapReduce<Impl, D, K, V, Container>::keyval>&) [with Impl = WordsMR, D = wc_string, K = wc_word, V = long unsigned int, Container = hash_container<wc_word, long unsigned int, sum_combiner, wc_word_hash>]’中:
word_count.cpp:223:5:从此处实例化
../../include/map_reduce.h:202:5: 错误: 将‘const WordsMR’作为‘int WordsMR::split(wc_string&)’的‘this’实参时丢弃了类型限定 [-fpermissive]
make: *** [word_count.o] 错误 1

解决方法:

修改Makefile文件,将 -fpermissive 加进去,修改后如下:

-------------------------------------------

HOME = ../..
include $(HOME)/Defines.mk
LIBS += -L$(HOME)/$(LIB_DIR) -l$(PHOENIX)
WC_OBJS := word_count.o
PROGS := word_count
.PHONY: default all clean
default: all
all: $(PROGS)
word_count: $(WC_OBJS) $(LIB_DEP)
$(CXX) -fpermissive $(CFLAGS) -o $@ $(WC_OBJS) $(LIBS)
%.o: %.cpp
$(CXX) -fpermissive $(CFLAGS) -c {1}lt; -o $@ -I$(HOME)/$(INC_DIR)
clean:
rm -f $(PROGS) $(WC_OBJS)

注意$CXX, rm开头必须要有"Tab"间隔符,不能有空格,否则调试出错!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值