0

私は比較的新しいプログラマーなので、これがかなりばかげた質問である場合はご容赦ください。

中規模のプログラムを書いたばかりで、コンパイルに問題があります。私のインクルードは次のようになります。

#include <glib.h>
#include <glib-object.h>
#include <X11/Xlib.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <gst/gst.h>
#include <gst/interfaces/xoverlay.h>

加えて、いくつかのカスタム ヘッダー ファイル (私が使用しているいくつかの GObject 用に 2 つ)

そして、次のコマンドラインを使用しようとしています:

gcc -Wall (my source files) -o (my output) `pkg-config --cflags --libs gdk gtk+-2.0 glib-2.0 gobject-2.0 gstreamer-0.10  x11`

多くのコンパイル エラー (1000 以上) が発生しますが、そのすべてが使用しているライブラリに関連しています。それらのほとんどは次のようになります。

/usr/include/glib-2.0/gobject/gtype.h:367: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'typedef'

/usr/include/glib-2.0/gobject/gobject.h:199: error: expected ')' before '*' token

/usr/include/glib-2.0/gobject/gsignal.h:262: error: expected declaration specifiers or '...' before 'GSignalFlags'

などなど。

どんな助けでも大歓迎です。リンクまたはインクルードのいずれかで、ある種のばかげた間違いだと確信していますが、それを理解することはできません。

4

3 に答える 3

3

最初のエラーを見て、他のエラーは無視してください。

1 つの可能性は、最初のエラーが #include の 1 つが見つからなかったことを示していることです。もしそうなら、それを修正するだけで、大量のエラーがその問題から派生する可能性があります.

おそらく、gstreamer-interfaces-0.10 など、pkg-config コマンドラインで必要なモジュールの 1 つが欠落している可能性がありますが、推測にすぎません。

于 2011-03-06T03:47:13.210 に答える
1

これが役立つかどうかはわかりませんが、同じエラーが発生しました。(Mac用のXCode 3.2.5で開発しています)。

Macports ライブラリ /opt/local/lib および /opt/local/include にリンクするアプリケーションを構築したかった

私は次のことをしました。

  1. [ターゲット] で、[ターゲット アプリ] をダブルクリックします

  2. [検索パス] の下で、常にユーザー パスを検索する [オフ] b. ヘッダー検索パス [ヘッダーの場所にパスを追加] ex. /usr/local/include/x c. ライブラリ検索パス [共有ライブラリにパスを追加]

  3. コンパイルして実行し、エラーを修正する必要があります

ライブラリの場所がわからない場合は、pkg-config を使用して見つけてください。

pkg-config の使用法:

pkg-config --cflags

例: pkg-config --cflags glib-2.0

-I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include

次に、これらのディレクトリを見て、不足している依存関係が含まれているかどうかを確認し、検索パスの下の「ヘッダー」または「ライブラリ」パスにパスを追加します。

お役に立てれば。

于 2011-03-14T20:02:36.763 に答える
0

コードなしで言うのは難しい。しかし、おそらくセミコロンの欠落か、マクロのエラーに賭けるでしょう。自分のものではないコードであっても、常にそのような奇妙なメッセージが生成されます。

独自のコードを再確認してください。 -W* ファミリなどのデバッグ フラグを追加してみてください ( GCCを参照) 。

于 2011-03-05T22:48:14.447 に答える