最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Protobuf c++ 版鏈接失敗

2022-01-13 14:43 作者:-l0_0l-  | 我要投稿

目錄

1 環(huán)境

1.1 New

  • Raspbian 11

    • g++ 10.2.1

  • protobuf-cpp-3.19.3

1.2 Old

  • Raspbian 10

    • g++ 8.xxx(具體忘了)

  • protobuf-cpp-3.17.3

2 具體問(wèn)題

在舊系統(tǒng)能正常編譯鏈接的文件,到新系統(tǒng)中能正常編譯,但鏈接失敗,提示「undefined reference to `google::protobuf::xxxx`」。

3 排查

一開(kāi)始以為是 protobuf 的動(dòng)態(tài)庫(kù)有問(wèn)題,于是用回舊的版本重新編譯,但結(jié)果還是一樣。

之后懷疑有沒(méi)可能是 protobuf 編譯時(shí)「-std=c++xxx」版本對(duì)不上的原因,指定版本重新編譯后,結(jié)果還是一樣。

之后嘗試直接安裝 libprotobuf-dev 和 protobuf-compiler ,Makefile 刪除相關(guān)的指定路徑,結(jié)果還是一樣。

沒(méi)想到其他辦法了,按照 Protocol Buffer Basics: C++ 寫(xiě)一個(gè)測(cè)試工程。期間從 g++ main.cc 開(kāi)始,根據(jù)報(bào)錯(cuò)逐漸向后添加參數(shù)。 到鏈接那一步也沒(méi)問(wèn)題。將之前寫(xiě)的 proto 文件拿過(guò)來(lái)編譯,也沒(méi)問(wèn)題。

很懵。

之后對(duì)照兩個(gè) Makefile ,看是否加了什么參數(shù)導(dǎo)致報(bào)錯(cuò)。結(jié)果,編譯鏈接都正常。。。

想砸電腦。

最后,注意到兩個(gè) Makefile g++ 的參數(shù)順序不同。(有點(diǎn)無(wú)語(yǔ),誰(shuí)會(huì)想到參數(shù)順序能影響命令執(zhí)行的)

之前習(xí)慣將參數(shù)放在鏈接文件之前:

g++ -L../protobuf/lib -lprotobuf main.o test.pb.o

寫(xiě)測(cè)試工程的時(shí)候倒沒(méi)這講究:

g++ main.o test.pb.o -L../protobuf/lib -lprotobuf

之后將正式工程 Makefile 中的 -L -l 移到命令末尾,鏈接就正常了。。。

Protobuf c++ 版鏈接失敗的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
柯坪县| 泸溪县| 灵山县| 平度市| 攀枝花市| 曲麻莱县| 静海县| 宜州市| 黎川县| 社旗县| 聂拉木县| 景谷| 自治县| 靖远县| 桐庐县| 河西区| 尚志市| 德兴市| 闸北区| 奉贤区| 邓州市| 通海县| 浑源县| 永善县| 普兰店市| 绥滨县| 德江县| 蒙阴县| 安平县| 邯郸县| 肥城市| 河源市| 泸水县| 德江县| 怀安县| 道孚县| 昌乐县| 宣恩县| 长沙县| 云安县| 蓬莱市|