在 gcc 中动态链接 libgit2 .so

问题描述

我正在运行一个 Debian (Buster) 容器,我的目标是编译我编写的一个依赖于 libgit2小程序。首先,我通过 libgit2-dev 软件包安装 libgit2,我的 Makefile 具有以下内容

gcc -O2 -fpic -shared -I /usr/local/include -lgit2 -o output.so my_app.c

但是,我宁愿有一个“更干净”的环境并通过 libgit-27 安装 libgit2,AFAIK 只安装共享对象二进制文件,而不是还包括开发文件,如 {{1 }} 确实如此。

使用 libgit2-dev 我可以找到 find 文件的安装位置:

.so

并且我一直在尝试将 $ find / -name "*git2*" -print 2>/dev/null /usr/lib/x86_64-linux-gnu/libgit2.so.0.27.7 /usr/lib/x86_64-linux-gnu/libgit2.so.27 /usr/share/doc/libgit2-27 /var/lib/dpkg/info/libgit2-27:amd64.list /var/lib/dpkg/info/libgit2-27:amd64.symbols /var/lib/dpkg/info/libgit2-27:amd64.md5sums /var/lib/dpkg/info/libgit2-27:amd64.shlibs /var/lib/dpkg/info/libgit2-27:amd64.triggers .so 链接的几种组合,例如:

gcc

但到目前为止我总是收到以下错误

gcc -O2 -fpic -shared -L /usr/lib/x86_64-linux-gnu/ -libgit2.so.27 -o output.so my_app.c

我明白这是对 C 编译如何工作的明显缺乏知识。我的两个问题是:

  1. 是否可以仅依靠 my_app.c:1:10: Fatal error: git2.h: No such file or directory #include <git2.h> ^~~~~~~~ compilation terminated. Debian Buster 软件包而不是 libgit2-27 来编译我的程序?如果没有,为什么?
  2. 如果是,请提供示例和解释,我们将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)