Como configurar o gtk no Visual Studio 2010

Eu tentei configurar o gtk + no visual studio, mas não funciona corretamente., Alguém pode me sugerir com uma solução adequada, como instalar o gtk no Visual Studio 2010?

Eu tenho o GTK + trabalhando com o VS2010, então se você quer que ele funcione também, prepare-se para um pouco de diversão, porque isso levará alguns minutos.

Antes de mais nada, faça o download do pacote do Windows All-In-One mais recente. Link de download direto opcional para o pacote GTK 2.24 que eu usei aqui . O link direto é para a versão de 32 bits. Eu não testei a versão de 64 bits porque ela ainda está listada como experimental.

Depois de ter o pacote baixado, descompacte-o em algo como C:\gtk ou no meu caso D:\gtk

Em seguida, criaremos uma variável de ambiente do sistema para a pasta GTK. Abra um prompt de comando e escreva: setx GTKDIR {Path to your GTK folder} /m que no meu caso seria setx GTKDIR D:\gtk /m

Também vamos adicionar os arquivos .dll necessários para que os aplicativos criados em GTK + sejam executados no Windows em nosso PATH do sistema. Para facilitar as coisas, sugiro que você edite o PATH do seu sistema com o PathEditor . Agora adicione o caminho para a pasta binários do GDK, que no meu caso é D: \ gtk \ bin para o PATH do sistema. Confirme se a pasta bin do GTK foi adicionada ao PATH, digitando PATH em seu prompt de comando.

Agora passamos para o Visual Studio 2010 e criamos um novo projeto.

 File ->New ->Project Visual C++ ->Win32 ->Win32 Console Application 

Em seguida, o Assistente para aplicativos é exibido.

Clique para selecionar:

 Windows Application Empty Project 

clique em Concluir para continuar.

Antes de adicionarmos qualquer arquivo de origem, clique com o botão direito do mouse no nome do projeto no Solution Explorer e clique em Properties . Agora vá para Propriedades de Configuração e, em seguida, Diretórios do VC ++ . Agora precisamos adicionar os arquivos de inclusão e biblioteca do GTK aos diretórios de inclusão e diretórios de biblioteca .

Você deve ter o seguinte em seus Diretórios de Inclusão

 $(GTKDIR)\lib\gtk-2.0\include $(GTKDIR)\lib\glib-2.0\include $(GTKDIR)\include 

e diretórios de biblioteca :

 $(GTKDIR)\lib 

Enquanto ainda estamos na visualização das propriedades do projeto, clique em Linker e depois em System . Procure SubSystem à direita e clique na checkbox suspensa. Selecione Windows / SUBSYSTEM: WINDOWS

Em seguida, temos que gerar os sinalizadores para o compilador e o vinculador. Felizmente, o GTK + vem com uma pequena ferramenta chamada pkg-config que usaremos para gerar automaticamente esses sinalizadores para nós. A ferramenta pkg-config pode ser encontrada na pasta bin do GTK. No meu caso, isso é D: \ gtk \ bin ou % GTKDIR% \ bin usando nossa variável de sistema que definimos anteriormente. Simplesmente navegue até a pasta bin (os arquivos de texto criados serão enviados para lá) usando o prompt de comando e execute o seguinte:

 pkg-config --cflags gtk+-2.0 --msvc-syntax > compilerflags.txt 

Isso criará os sinalizadores de compilador que precisamos e os armazenará em um arquivo de texto. Meu resultado para sinalizadores de compilador (eu removi o sinalizador -mms-bitfields , este é um sinalizador somente do gcc que não é necessário):

 -ID:/gtk/include/gtk-2.0 -ID:/gtk/lib/gtk-2.0/include -ID:/gtk/include/atk-1.0 -ID:/gtk/include/cairo -ID:/gtk/include/gdk-pixbuf-2.0 -ID:/gtk/include/pango-1.0 -ID:/gtk/include/glib-2.0 -ID:/gtk/lib/glib-2.0/include -ID:/gtk/include -ID:/gtk/include/freetype2 -ID:/gtk/include/libpng14 

Nós faremos o mesmo para os flags do linker:

 pkg-config --libs gtk+-2.0 --msvc-syntax > linkerflags.txt 

Meu resultado para sinalizadores de vinculador:

 /libpath:D:/gtk/lib gtk-win32-2.0.lib gdk-win32-2.0.lib atk-1.0.lib gio-2.0.lib pangowin32-1.0.lib gdi32.lib pangocairo-1.0.lib gdk_pixbuf-2.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib gthread-2.0.lib glib-2.0.lib intl.lib 

Com todos os flags necessários gerados, precisamos adicioná-los ao nosso projeto. Mais uma vez, clique com o botão direito do mouse no nome do projeto e clique em Propriedades . Agora vá para C/C++ e clique em Command Line . À direita, você verá uma checkbox vazia chamada Opções adicionais . Copie e cole o conteúdo de compilerflags.txt nessa checkbox.

Depois de terminar o acima, clique em Linker e depois em Linha de Comando . Mais uma vez, basta copiar e colar o conteúdo do arquivo linkerflags.txt na checkbox Opções Adicionais . Enquanto estamos aqui, adicione um último sinalizador de vinculador / ENTRY: mainCRTStartup Esse sinalizador informa ao Visual Studio que queremos usar o padrão main () em vez de _tmain () da Microsoft como nosso ponto de input do programa principal.

Finalmente, na pasta Arquivos de código-fonte, crie e adicione um novo arquivo .cpp com o seguinte:

 #include  int main(int argc, char* argv[]) { gtk_init(&argc, &argv); GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_usize(window, 300, 200); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_window_set_title(GTK_WINDOW(window), "GTK+ with VS2010"); gtk_widget_show(window); gtk_main(); return 0; } 

Tudo deve estar pronto para compilar, vincular e executar. Se tudo correu bem, você deve ser saudado pelo seguinte: insira a descrição da imagem aqui

Bem, isso foi divertido, certo? 🙂

Dê uma olhada neste GTK + com o tutorial do Visual Studio 2008 .

Se você está construindo o GTK + stack no Windows com a ajuda de um guia como esse , então os luxos de usar um binário pré-compilado não estarão à sua disposição.

Neste caso eu sugeriria a seguinte abordagem.

  1. Faça o download dos binários pré-compilados – isso tem duas vantagens.

    • Isso vem com o utilitário pkg-config.exe que você pode usar para a fonte compilada.
    • Isto também contém a pasta pkgconfig com uma grande quantidade de arquivos .pc que podem ser adaptados para a fonte compilada.
  2. Compile os pacotes no modo debug / release – bem, esta é a principal vantagem de compilar você mesmo – e sistematicamente organize os headers, libs e dlls / exe em include, lib e bin folder respectivamente.

  3. Copie a pasta pkgconfig do precompiled_gtk_source \ bin para compiler_gtk_source \ bin e defina o caminho da variável PKG_CONFIG_PATH para adicionar o compiler_gtk_source \ bin \ pkgconfig a ela.

  4. Agora, considerando o fato de que os nomes das bibliotecas produzidas na compilation do gtk você mesmo e os nomes das bibliotecas correspondentes no pacote pré-compilado podem ser diferentes, você pode ter que fazer as mudanças necessárias nos arquivos compiler_gtk_source \ bin \ pkgconfig * .pc. Eu gostaria de uma abordagem de cima para baixo aqui (vamos ver as vantagens em breve). De cima para baixo, quero dizer simplesmente que o produto final será o primeiro a ser editado primeiro.

    Por exemplo, neste caso o gtk + é o produto final e eu irei configurar o .pc deste pacote primeiro. O procedimento é o seguinte:

    • Primeiro, olhe o nome da dll criada. No meu caso, é o gtk-3.0. Se o arquivo .pc fornecido com os binários pré-compilados tiver outro nome, altere o nome apropriadamente – no meu caso, é gtk-3.0.pc. (Este deve ser o caso com todos os outros arquivos .pc.)
    • Abra o gtk-3.0.pc em um editor de texto e você verá coisas como abaixo.

arquivo gtk-3.0.pc:

  prefix=c:/gtk_compilation/vs12/win32 exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include targets=win32 Name: GTK+ Description: GTK+ Graphical UI Library Version: 3.18.2 Requires: gdk-3.0 atk-1.0 cairo cairo-gobject gdk_pixbuf-2.0 gio-2.0 Requires.private: atk Libs: -L${libdir} -lgtk-3 Cflags: -I${includedir}/gtk-3.0 -mms-bitfields 

O acima é o meu arquivo personalizado. Se você não sabe o que cada linha faz, você pode dar uma olhada na ajuda do pkg-config . A opção Exigir, no entanto, precisa de uma menção especial. É o lugar onde você coloca as dlls de dependência – novamente, certifique-se de que o nome das dlls corresponda exatamente ao que você tem em sua pasta bin.

  1. Precisamos alterar de forma recursiva os arquivos .pc para as dlls incluídas após a instrução Require e se houver algum .pcs ​​ausente ou se houver incompatibilidade de nome, você poderá fazer as alterações apropriadas. Até agora, você já deve ter entendido a vantagem da abordagem de cima para baixo. Isso nos ajuda a separar sistematicamente os arquivos .pc de dependência até que resolvamos todos eles. Agora, execute o comando abaixo para ver se as coisas estão funcionando.

  2. Finalmente execute o comando pkg-config como abaixo:

    pkg-config --cflags gtk-3.0 --msvc-syntax > compilerflags.txt pkg-config --libs gtk+-2.0 --msvc-syntax > linkerflags.txt

Acabei de redirect os resultados para um arquivo de texto chamado compilerflags.txt e linkerflags.txt para que você possa usá-los quando quiser , copie, copie e cole . Claro, você deve manter apenas os sinalizadores específicos do compilador.

Espero que isso ajude alguém, algum dia.