makefile文件的编写问题

0colonel0 2016-10-17 03:33:32
工程文件目录:
barrage.pb.cc ClientProtoHelper.cpp md5.o
barrage.pb.h ClientProtoHelper.h mid_net_socket_tcp.cpp
barrage.pb.o ClientProtoHelper.o libprotobuf.a mid_net_socket_tcp.h
buffer.cpp crc32.cpp makefile mid_net_socket_tcp.o
buffer.h crc32.h md5.cpp ssmain.cpp
buffer.o crc32.o md5.h ssmain.o
我的makefile文件:
SERVERDIR=.
PROTOBUF=./
CRYPTO=./cryptopp

CC=g++
CXX=g++
INC2=-I$(SERVERDIR)/ -I$(PROTOBUF) -I$(CRYPTO)

LIB=./libprotobuf.a ./cryptopp/libcryptopp.a

CFLAGS= -Wall -g
TARGET=gate_test

OBJ+=ssmain.o \
./ClientProtoHelper.o \
buffer.o \
md5.o\
mid_net_socket_tcp.o \
barrage.pb.o \
crc32.o


$(TARGET):$(OBJ)
$(CXX) $(CFLAGS) -o $@ $^ $(LIB)

%.o: %.cpp
$(CXX) $(CFLAGS) $(INC2) -c -o $@ $<

%.o: %.c
$(CXX) $(CFLAGS) $(INC2) -c -o $@ $<

%.o: %.cc
$(CXX) $(CFLAGS) $(INC2) -c -o $@ $<

clean:
rm -f $(OBJ)
rm -f $(TARGET)

问题:为何会报这种未定义的错误呢
ssmain.o:在函数‘google::protobuf::internal::GetEmptyStringAlreadyInited[abi:cxx11]()’中:
/root/barrage/barrage/./google/protobuf/generated_message_util.h:80:对‘google::protobuf::internal::empty_string_[abi:cxx11]’未定义的引用
/root/barrage/barrage/./google/protobuf/generated_message_util.h:81:对‘google::protobuf::internal::empty_string_[abi:cxx11]’未定义的引用
ClientProtoHelper.o:在函数‘CClientProtolHelper::TcpSendRecv(unsigned int, unsigned short, SSendContextInfo const&, google::protobuf::Message const&, google::protobuf::Message&)’中:
/root/barrage/barrage/ClientProtoHelper.cpp:83:对‘google::protobuf::MessageLite::SerializeToString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const’未定义的引用


...全文
294 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hijack00 2016-10-17
  • 打赏
  • 举报
回复
make clean && make 主要问题应该是出在这一句: $(CXX) $(CFLAGS) -o $@ $^ $(LIB) $(LIB)最好改为采用-L和-l来指定,例如 LIB= -L. -L./cryptopp -lprotobuf -lcryptopp
Sniper_Pan 2016-10-17
  • 打赏
  • 举报
回复
赵4老师 2016-10-17
  • 打赏
  • 举报
回复
重建所有再试试。

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧