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
抱歉提出愚蠢的问题,但我一直在用其他语言编写程序,现在我开始接触 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