2009-08-22 97 views
8

EclipseのC/C++バージョンを使って簡単なGTKアプリケーションを構築しています。しかし、私はEclipse内からGTKサンプルをコンパイルできないようです。私は単純なHello Worldスタイルのテストアプリケーションをコンパイルすることができるので、ツールチェーン自体が機能していることがわかります。しかし、私がGTKをミックスに追加する瞬間、コンパイラはエラーを出します。面白いのは、Eclipse環境の外のサンプルをコンパイルできることです。たとえば、私はthisページの例を使用しており、そこに記載されている手順に従って、実際のバイナリをビルドすることができます。Eclipse内でC/GTKをコンパイルする

最初の問題は、Eclipseでコンパイルしようとすると、メインGTKインクルードファイルが別々に参照されるということです。

#include <gtk/gtk.h> 

ただし、Eclipse内でこれは動作しません。

#include <gtk-2.0/gtk/gtk.h> 

インクルードファイルが見つかりましたが、コンパイルプロセスでGtkWidgetタイプに関するエラーがスローされます。例えば:これらのエラーで

#include <gtk-2.0/gtk/gtk.h> 

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

    gtk_init (&argc, &argv); 

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 
    gtk_widget_show (window); 

    gtk_main(); 

    return 0; 
} 

結果:

make all 
Building file: ../src/main.c 
Invoking: GCC C Compiler 
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/main.d" -MT"src/main.d" -o"src/main.o" "../src/main.c" 
../src/main.c: In function ‘main’: 
../src/main.c:7: error: ‘GtkWidget’ undeclared (first use in this function) 
../src/main.c:7: error: (Each undeclared identifier is reported only once 
../src/main.c:7: error: for each function it appears in.) 
../src/main.c:7: error: ‘window’ undeclared (first use in this function) 
../src/main.c:9: warning: implicit declaration of function ‘gtk_init’ 
../src/main.c:11: warning: implicit declaration of function ‘gtk_window_new’ 
../src/main.c:11: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function) 
../src/main.c:12: warning: implicit declaration of function ‘gtk_widget_show’ 
../src/main.c:14: warning: implicit declaration of function ‘gtk_main’ 
make: *** [src/main.o] Error 1 

この取り掛かるする方法がわかりません。どんな援助も非常に高く評価されるだろう。ビルド・パスにgtkのディレクトリを追加する

答えて

8

Eclipseプロジェクトを右クリックし、[プロパティ]を選択します。 Configurationドロップダウンから[ All configurations ]を選択します。そして、ツール設定]タブ上GCC C Compiler(デフォルト)を選択し、終了Command line pattern(エキスパート設定)ボックスに次の行を追加します。

`pkg-config --cflags --libs gtk+-2.0` 

GCC C Linkerオプションに同じことを行います。

gtk-2.0でインクルードパスを開始したくない場合は、aardvarkのようにインクルードディレクトリ(/usr/include/gtk-2.0)を追加してください。

+1

設定のドロップダウンが見つかりません。 ? –

+0

使用しているEclipseのバージョンとプロジェクトのタイプは何ですか?元の質問は'09からのものなので、EclipseのUIで少し変わったり動いたりするかもしれません。 – Luke

3

試してみてください。

プロジェクトに行くのプロパティ - > C/C++ビルド - >設定 - > [ツールの設定] - > [ディレクトリとパスを含めるの下に追加します。

+0

ありがとうございました。それはgtk/gtk.hをrecocnizingしていないEclipseの世話をしましたが、今コンパイルすると非常に多くのエラーが発生します。最後の2つはちょっと奇妙です:../src/main。c:16:error:プロトタイプ関数定義の古いスタイルのパラメータ宣言 ../src/main.c:16:エラー: '{'が入力の最後にあります – Luke

1

Eclipse CDTのためのpkg-configサポートを考慮して、長い間待機しています。

このサポートは開発中で、8月頃にCDTに統合されます。

最も重要な機能は、使いやすいユーザーインターフェイスで必要なパッケージを選択できることです。

プロジェクトのウェブサイト: http://code.google.com/p/pkg-config-support-for-eclipse-cdt/

更新: は、ベータ版をテストしてお気軽に:
http://marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt
フィードバックを歓迎です!

+0

これは壊れているようです - libsだけが追加されますが(EclipseのOxygenでは)パスは追加されません – OBu

関連する問題