C 库是如何安装的?

How are C libraries installed?

抱歉提出愚蠢的问题,但我一直在用其他语言编写程序,现在我开始接触 C,我想知道这个。

我在使用 Arch(很抱歉成为那个人,我认为这很重要),并且对它很陌生,但我需要安装库。 是库包,还是我应该从 github 之类的地方获取它们?什么是正当程序? 有问题的库是 libgimp/gimp.h

提前致谢。

运行:

$sudo pacman -S gimp

然后:

$ ls -l usr/include/gimp-2.0/libgimp/
usr/include/gimp-2.0/libgimp/gimp.h
usr/include/gimp-2.0/libgimp/gimp_pdb.h
usr/include/gimp-2.0/libgimp/gimp_pdb_headers.h
usr/include/gimp-2.0/libgimp/gimpaspectpreview.h
usr/include/gimp-2.0/libgimp/gimpbrush_pdb.h
usr/include/gimp-2.0/libgimp/gimpbrushes.h
usr/include/gimp-2.0/libgimp/gimpbrushes_pdb.h
usr/include/gimp-2.0/libgimp/gimpbrushmenu.h
usr/include/gimp-2.0/libgimp/gimpbrushselect.h
usr/include/gimp-2.0/libgimp/gimpbrushselect_pd
...

您必须提供编译器标志

-I/usr/include/gimp-2.0

以及链接器标志:

-lgimp-2.0 -lgimpbase-2.0

注意:始终以这种方式包含文件:

#include <libgimp/file_name.h>

例如:

#include <libgimp/gimp.h>

更新: 应另一位用户的要求,我附上 pkg-config 方面的说明(我自己不是大用户,但它是一个很棒的工具):

$ pkg-config --cflags gimp-2.0
-I/usr/include/gimp-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pixman-1 -I/usr/include/gegl-0.4 -I/usr/include/gio-unix-2.0 -I/usr/include/json-glib-1.0 -pthread -I/usr/include/babl-0.1 
$ pkg-config --libs gimp-2.0
-lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.4 -lgegl-npd-0.4 -lm -Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0 -ljson-glib-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lbabl-0.1 

因此您可以将其传递给您的编译器:

GIMP_INCLUDES=$(pkg-config --cflags gimp-2.0)
GIMP_LIBS=$(pkg-config --libs gimp-2.0)
g++ myfile.cpp $GIMP_INCLUDES myfile.o
g++ myfile.o $GIMP_LIBS -o main