라이브러리가 항상 누락되어 Debian에서 GTK를 사용할 수 없습니다.

라이브러리가 항상 누락되어 Debian에서 GTK를 사용할 수 없습니다.

나의 게으름 때문에 나는 GTK 프로그램의 사전 컴파일된 바이너리를 다운로드했습니다(컴파일하는 대신, 시간 낭비가 얼마나 되는지 고려하면 지루할 것입니다).편집: sudo apt get을 사용하십시오. 이는 호환되어야 함을 의미합니다.

그 중 일부를 다운로드한 것 같습니다. "-dev" 태그가 있는 버전과 "-dev" 태그가 없는 버전을 다운로드했습니다.

내 기억이 맞다면 내가 실행하려는 프로그램은 "GeeksForGeeks"에서 가져온 것입니다.

#include <gtk/gtk.h>
static int counter = 0;

void greet(GtkWidget* widget, gpointer data)
{
    // printf equivalent in GTK+
    g_print("Welcome to GTK\n");
    g_print("%s clicked %d times\n",
            (char*)data, ++counter);
}

void destroy(GtkWidget* widget, gpointer data)
{
    gtk_main_quit();
}

int main(int argc, char* argv[])
{

    GtkWidget* window;
    GtkWidget* button;
    gtk_init(&argc, &argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    g_signal_connect(window, "destroy",
                    G_CALLBACK(destroy), NULL);
    /* Let's set the border width of the window to 20.
    * You may play with the value and see the
    * difference. */
    gtk_container_set_border_width(GTK_CONTAINER(window), 20);

    button = gtk_button_new_with_label("Click Me!");

    g_signal_connect(GTK_OBJECT(button),
                    "clicked", G_CALLBACK(greet),
                    "button");

    gtk_container_add(GTK_CONTAINER(window), button);

    gtk_widget_show_all(window);

    gtk_main();

    return 0;
}

하지만 마이크로에 복사하여 붙여넣은 후 저장하기 전에 gtk/gtk.h와 같은 디렉터리가 없다는 오류가 발생했습니다.

그런 다음 gtk.h의 정확한 위치를 연결합니다.

그 사람에게 또 다른 오류가 발생했습니다.지리.h

인터넷 검색을 시도했지만 결과 중 어느 것도 유효한 답변을 제공하지 못했습니다. 또한 이 질문은 프로그래밍에 관한 주제이므로 unix stackexchange와 관련이 있기를 바랍니다. 대부분 코드가 아닌 Linux/Unix 시스템과 밀접하게 관련된 질문이기 때문에 여기에 게시합니다. 내가 아는 한, 이 코드는 완전히 괜찮습니다.

PS 스크린샷에서 볼 수 있듯이 라이브러리와 기타 항목을 연결하려고 시도했습니다.

답변1

당신은해야합니다sudo apt install libgtk-3-dev

그런 다음 pkg-config에서 얻은 옵션을 사용하여 컴파일합니다.

gcc $(pkg-config --cflags gtk+-3.0) $(pkg-config --libs gtk+-3.0) -o prog program.c

관련 정보