未定义的符号引用' gdk_pixbuf_major_version'

时间:2017-08-17 16:58:46

标签: linux gtk3 gdkpixbuf

我无法关联我的申请: 我得到了未定义的符号引用' gdk_pixbuf_major_version'

我是WIN32程序员,这是我第一次涉足Linux。 我的目标设备是Ubuntu xenial,GTK + 3.18.9。 从gdk_pixbuf_features.h,Gdk-Pixbuf版本是2.32.2。

我有一个静态库(_rUtilitiesLinuxx64),它执行此操作: GdkPixBuffMajorRunTime = gdk_pixbuf_major_version; 静态库构建得很好。

我有一个应用程序(_rUtilitiesTestLinux)链接到_rUtilitiesLinuxx64。

我的假设是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在哪里?

2 个答案:

答案 0 :(得分:0)

documentation开始,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头文件的主要版本   包括在内。

答案 1 :(得分:0)

这不是答案

好吧,我从来没有深究这一点。 我的未定义引用在过去的一周中不停地进行,没有任何押韵或理由没有更改库(不添加或删除它们),并且没有更改引用GdkPixbuf的代码。

我放弃了,并将整个事情转移到开罗。