1
flax5a98aa2 264 天前
你安装 protobuf 版本正确吗?如果你的发行版比较老,从包管理器安装的版本也会比较老,这个时候需要自己编译安装对应版本的 protobuf 。
如果你确定版本没有问题,也将 protobuf 安装到了某个目录,但是编译时仍然找不到 protobuf ,可能需要手动跑一下 ldconfig 。按照 https://man7.org/linux/man-pages/man8/ldconfig.8.html 的说法,ldconfig 会检查 /etc/ld.so.conf ,在我这边( debian )写的是 include /etc/ld.so.conf.d/*.conf ,然后你可以看看这些文件里面写的搜索路径,比较典型的是 glibc 的 /usr/local/lib 。如果你在这些路径里面都看不到你安装的 protobuf 的库路径,就自己照着写个配置文件,将你的路径包含进去,再跑 ldconfig 。 |
2
dy416394356y78 OP 我的 protobuf 项目使用的版本是 3.19.1.0 ,能确定是版本对的,因为这些三方库我们都是另建仓库保存的,我试试大佬说的这个办法,不过我们用的是 ubuntu 的
|
3
tangtang369 264 天前
交叉编译的时候把 install 目录设置到 /usr/lib 不要真的 install 编译完把库放 /usr/lib
|
4
dy416394356y78 OP @tangtang369 但是我用自己的工具链编译,他也会在系统的/usr/lib 里面找库吗,因为在我的另一台电脑中/usr/lib 下并没有 protobuf 库,仍可以编译通过
|