Solaris 上的 gcc 如何找到它的库?
题
我正在尝试安装“quadrupel”,这是一个在 Solaris x86 上依赖 ffmpeg 的库。
我设法构建 ffmpeg 及其库位于 /opt/gnu/lib 中,包含内容位于 /opt/gnu/include 中,但是当我尝试构建 fourrupel 时,它找不到 ffmpeg 标头。
需要什么标志/配置才能将这两个目录包含在库和包含的正确搜索路径中?我不是一个 Makefile 黑客。
解决方案
您可以通过设置环境变量 LD_LIBRARY_PATH 来覆盖该路径。不过,我建议也更改系统路径,这样您就不必更改所有用户的库路径。这可以使用 crel 来完成。
crle -l -c /var/ld/ld.config -l /usr/lib:/usr/local/lib:/opt/gnu/lib
对于包含,只需将 -I/opt/gnu/include 添加到您的 CFLAGS 变量中。
其他提示
我相信您需要将以下内容添加到 Makefile 中:
CFLAGS += -I/opt/gnu/include
LDFLAGS += -L/opt/gnu/lib -R/opt/gnu/lib
-I 参数告诉 gcc 在哪里可以找到包含文件。-L 标志告诉 ld 在链接时在哪里找到库。-R 标志将 /opt/gnu/lib 写入四元二进制文件的库搜索路径中,以便在启动时可以找到其库。
不隶属于 StackOverflow