2016-09-01 2 views
1

Я установил пакет msys2 и mingw-gcc, gtk3.Как построить приложение GTK3 с помощью msys2?

pacman -S mingw-w64-i686-toolchain 
pacman -S mingw-w64-i686-gtk3 

Затем я попытался создать тестовый код.

// main.c 
#include <stdio.h> 
#include <gtk\gtk.h> 

int main() 
{ 
    printf("hello, msys2!"); 
    return 0; 
} 

, но этот тестовый код не строился с ошибкой.

main.c:2:21: fatal error: gtk\gtk.h: No such file or directory 

Я проверил местоположение gtk.h и исправил и перестроил.

// #include <gtk\gtk.h> -> #include <gtk-3.0\gtk\gtk.h> 
C:/msys32/mingw32/include/gtk-3.0/gtk/gtk.h:30:21: fatal error: gdk/gdk.h: No such file or directory 

Я думаю, что есть моя ошибка, я не знаю.

+0

У меня такая же проблема :-(. –

ответ

2

пересылка gtk3 tutorial site.

и читать опцию gcc.

gcc `pkg-config --cflags gtk+-3.0` -o example-0 example-0.c `pkg-config --libs gtk+-3.0` 
+0

Скачать «PKG-конфигурация», где теперь я должен поместить эти файлы вы приносите? Потому что, когда я использую эту инструкцию терминал devuleve мне : «no sush directory» –

-1

В начале (компиляция с MSYS2) У меня такая же проблема, и процедуру, предложенную с помощью следующей команды (или что-то подобное):

gcc `pkg-config --cflags gtk+-3.0` hello.c -o hello `pkg-config --libs gtk+-3.0` 

Однако сообщение об ошибке осталось ... Таким образом, после некоторого открытия I интернет исследований, что я должен ввести (в моем случае) следующая команда:

export PKG_CONFIG_PATH=/mingw32/lib/pkgconfig 

или

export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig 

И они используют команду компиляции, ранее цитируемую, а затем все начинает работать лучше, и я смог скомпилировать и запустить мои программы.

Печальная вещь (одна из многих) заключается в том, что я должен выполнять эту процедуру каждый раз, когда я перезапускаю MSYS2. Я принимаю предложения, чтобы больше не делать этого :-)

И еще одна печальная вещь заключается в том, что после переустановки новой версии MSYS2 (и кодовых блоков на моем компьютере) я все еще могу скомпилировать программы, однако они не запускаются из-за ошибки с zlib1.dll.

Послание

"The procedure entry point inflateReset2 could not be located in 
the dynamic link library zlib1.dll" 
+0

Я помню, что запустил эту команду, чтобы проверить, где хранятся пакеты: – Marcio

+0

find/-name * .pc – Marcio

Смежные вопросы