五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
宁安市| 枣庄市| 巴林右旗| 南雄市| 汉川市| 蕲春县| 南木林县| 鞍山市| 万源市| 连平县| 汉阴县| 崇义县| 乳山市| 黄大仙区| 新昌县| 闽清县| 宜城市| 宝丰县| 邮箱| 基隆市| 定西市| 石阡县| 项城市| 庆云县| 海安县| 沁阳市| 海林市| 双峰县| 永丰县| 长垣县| 乌兰浩特市| 台江县| 海原县| 衡南县| 钦州市| 伽师县| 格尔木市| 望城县| 辽源市| 南丹县| 桦川县|