protobuf3.4-(2)程序终端编译报错( 未定义的引用undefined reference )

1.编译报错

  • 不正确编译
    $ g++ -o main account.cpp …/protobuf/build/libprotobuf-lite.a
/tmp/ccOySh1U.o:在函数‘main’中:
account.cpp:(.text+0x26):对‘Account::Account()’未定义的引用
/tmp/ccbZPZqN.o:在函数‘protobuf_account_2eproto::(anonymous namespace)::protobuf_AssignDescriptors()’中:
account.pb.cc:(.text+0x6e):对google::protobuf::ServiceDescriptor const**)’未定义的引用

2.编译参数及所需库

原因链接时缺少相关的目标文件(.o)或库文件(.a/.so)

  • 编译
    account.pb.cc也需要编译, 如果是工程中, 可以单独编译, 由于只有一个文件所以就放到一块编译了
$ g++ account.cpp account.pb.cc  libprotobuf.a -o main

也可以先生成目标文件
g++ -c main account.cpp account.pb.cc libprotobuf.a
得到两个account.o account.pb.o
链接生成可执行依然需要libprotobuf.a库
g++ -o main account.o account.pb.o libprotobuf.a
得到main可执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值