2017-08-17 1 views
0

へ: 私はWIN32プログラマーだとこれは、Linuxへの私の最初の進出であるgdk_pixbuf_major_version 『未定義の参照記号「gdk_pixbuf_major_version」私は自分のアプリケーションをリンクすることができません

「シンボルへの未定義参照』を取得しています。 私のターゲットデバイスは、Ubuntu xenial、GTK + 3.18.9です。 gdk_pixbuf_features.hから、Gdk-Pixbufのバージョンは2.32.2です。

私はこれを行う静的ライブラリ(_rUtilitiesLinuxx64)を持っています: GdkPixBuffMajorRunTime = gdk_pixbuf_major_version; 静的ライブラリはうまく構築できます。

私は_rUtilitiesLinuxx64にリンクしているアプリケーション(_rUtilitiesTestLinux)を持っています。

私の仮定はgdk_pixbuf_major_versionが、私は自分のアプリケーションを構築しようとすると、私は未定義取得していますGdk_Pixbuf ライブラリ(/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so)

に実際にあるということです参照 から 'gdk_pixbuf_major_version'

gdk_pixbuf_major_versionはlibgdk_pixbuf-2.0に含まれていないようですか?

Invoking ld 
1> g++  -o "/home/rob/projects/_rUtilitiesTestLinux/bin/x64/Debug/_rUtilitiesTestLinux.out" -Wl,--no-undefined -Wl,-L/home/rob/projects/_rUtilitiesLinux/bin/x64/Debug -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack 
/home/rob/projects/_rUtilitiesTestLinux/obj/x64/Debug/main.o 
/home/rob/projects/_rUtilitiesTestLinux/obj/x64/Debug/TestClass.o 

/usr/lib/x86_64-linux-gnu/libgtk-3.so 
/usr/lib/x86_64-linux-gnu/libgdk-3.so 
/usr/lib/x86_64-linux-gnu/libgio-2.0.so 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so 
/usr/lib/x86_64-linux-gnu/libpthread.so 
/usr/lib/x86_64-linux-gnu/libglib-2.0.so 
/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so 
-l_rUtilitiesLinuxx64 

1> /usr/bin/ld: 
/home/rob/projects/_rUtilitiesLinux/bin/x64/Debug/lib_rUtilitiesLinuxx64.a(_rGraphwSystem.o):/usr/bin/ld: 
/home/rob/projects/_rUtilitiesLinux/bin/x64/Debug/lib_rUtilitiesLinuxx64.a(_rGraphwSystem.o): undefined reference to symbol 'gdk_pixbuf_major_version' 

1> /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so: error adding symbols: DSO missing from undefined reference to symbol 'gdk_pixbuf_major_version' 
1> /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so: error adding symbols: DSO missing from command line 
1> command line 
1> collect2: error: ld returned 1 exit status 
1> collect2: error: ld returned 1 exit status 
1> /usr/bin/ld : error : undefined reference to symbol 'gdk_pixbuf_major_version' 
1> /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so : error : DSO missing from command line 
1> collect2 : error : ld returned 1 exit status 

ここで、gdk_pixbuf_major_versionはどこですか? documentationから

答えて

0

gdk_pixbuf_major_versionは、次のように定義されます

extern const guint gdk_pixbuf_major_version 

説明は次のとおりです。

GDK-pixbufのライブラリのメジャーバージョン番号。 (例: gdk-pixbufバージョン1.2.5、これは1です)

この変数はライブラリ内にありますので、あなたがリンクしているgdk-pixbufライブラリ を表しています。 GDK_PIXBUF_MAJORマクロ( )と対照的に、 のgdk-pixbufヘッダーのメジャーバージョンを表します。

+0

Joseさん、ありがとうございますが、私の問題はコンパイルの問題ではなく、リンクの問題です。 – RSullivan

0

これが答え

まあ、私はこれの底に得たことがないではありません。 未定義の参照は、韻や理由なく、ライブラリを変更(追加または削除しない)したり、GdkPixbufを参照しているコードに変更を加えたりせずに、先週も続けて行きました。

私はあきらめて、すべてをカイロに移しています。

関連する問題