programing

glib를 위한 "헬로 월드"를 구축할 수 없는 이유는 무엇입니까?

closeapi 2023. 7. 20. 21:56
반응형

glib를 위한 "헬로 월드"를 구축할 수 없는 이유는 무엇입니까?

세계에서 가장 간단한 glib 프로그램은 다음과 같습니다.

#include <glib.h>

로 컴파일하려고 합니다.gcc test.c그리고 나는 다음을 얻습니다.

test.c:1:18: error: glib.h: No such file or directory

따라서 올바른 패키지가 있는지 확인합니다.

# dpkg -l | grep libglib
ii  libglib-perl                              1:1.183-1                               Perl interface to the GLib and GObject libra
ii  libglib1.2-dev                            1.2.10-19build1                         The GLib library of C routines (development)
ii  libglib1.2ldbl                            1.2.10-19build1                         The GLib library of C routines
ii  libglib2.0-0                              2.20.1-0ubuntu2                         The GLib library of C routines
ii  libglib2.0-cil                            2.12.1-1ubuntu2                         CLI binding for the GLib utility library 2.1
ii  libglib2.0-data                           2.18.2-0ubuntu2                         Common files for GLib library
ii  libglib2.0-dev                            2.20.1-0ubuntu2                         Development files for the GLib library
ii  libglibmm-2.4-1c2a                        2.18.1-1                                C++ wrapper for the GLib toolkit (shared lib

그런 다음 "글립"을 검색합니다.h"는 /usr/sigma 아래에 있습니다./usr/include/glib-1.2/glib.h 및 /usr/include/glib-2.0/glib.h 두 개가 표시됩니다.그래서 저는 노력합니다.

$ gcc -I/usr/include/glib-2.0 -Wall test.c  
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
             from /usr/include/glib-2.0/glib.h:32,
             from test.c:2:
/usr/include/glib-2.0/glib/gtypes.h:34:24: error: glibconfig.h: No such file or directory

(약 10,000개의 오류가 추가로 제거됨)

저는 없는 것 같아요.glibconfig.h내 컴퓨터 어디든.

이제 어떻게 해야 합니까?

입만 열면 숨는 경향이 있어요GCC가 하위 디렉터리를 자동으로 검색하지 않으므로 glib.hing glib-1.2 또는 glib-2.0을 볼 수 없기 때문에 포함 문이 작동하지 않습니다.

GLIB 매뉴얼의 GLib 애플리케이션 컴파일 페이지를 읽어 보십시오...다음과 같은 명령을 사용합니다.pkg-config --cflags glib-2.0GCC에 적합한 깃발을 얻기 위해.

당신이 노력하는 것을 하는 표준적인 방법은.

% gcc test.c -Wall -o test `pkg-config --cflags --libs glib-2.0`

셸에 pkg-config 명령 "in-place"를 실행하도록 지시하는 백 틱을 기록합니다.

> > The canonical way to do what you are trying is

> % gcc test.c -Wall -o test `pkg-config --cflags --libs glib-2.0`

미안하지만, 안 돼요.그것은 일반적인 오해입니다. ELF 기반 시스템, 특히 Linux에서 대부분의 경우 작동합니다.일반적인 방법은 다음과 같이 cflags와 라이브러리를 명령줄의 올바른 위치와 기존 위치로 개별적으로 전달하는 것입니다.

gcc -Wall -o test `pkg-config --cflags glib-2.0` test.c `pkg-config --libs glib-2.0`

pkg-config가 --cflags와 --libs 옵션을 동시에 수락하는 것은 유감스러운 일입니다. 이는 이 잘못된 밈이 절대 죽지 않는다는 것을 의미하기 때문이며 Linux에서 사용하는 사람들은 다른 플랫폼에서 동일한 것을 시도할 때 계속 당황할 것이기 때문입니다.

~하듯이@chris당해 용도pkg-config.

glibconfig.h is missing 

그 이유는 이 파일이 없기 때문입니다./usr/include/glib-2.0그러나/usr/lib/glib-2.0.그래서 당신은 이것도 포함해야 합니다./usr/lib파일을 경로 지정 또는 복사합니다./include/glib-2.0

나는 glib.h has well을 사용하고 있습니다 - 모든 glib.h 프로그램을 컴파일하려면 이렇게 하십시오 :)

gcc `pkg-config --cflags --libs glib-2.0` filename.c

주위를 둘러보세요.pkg-config --cflags --libs glib-2.0타일(쿼티 키보드의 대부분 키 왼쪽에 있음) 아래에 있는 백슬롯과 함께 사용합니다.

나중에 감사합니다.. :P

apt-get build-dep당신의 친구입니다. 아무도 당신이 무언가를 만드는 데 필요한 모든 패키지를 기억할 수 없습니다.

언급URL : https://stackoverflow.com/questions/1146010/why-cant-i-build-a-hello-world-for-glib

반응형