对符号"gdk_pixbuf_major_version"的未定义引用



我无法链接我的应用程序: 我收到"对符号'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; 静态库构建得很好。

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

我的假设是gdk_pixbuf_major_version实际上在Gdk_Pixbuf Library (/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在哪里?

根据文档,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 标头的主要版本 包括。

这不是一个答案

好吧,我从来没有深入了解过这个问题。 在过去的一周里,我的未定义引用不断来来去去,没有押韵或原因,没有更改库(不添加或删除它们(,也没有更改引用 GdkPixbuf 的代码。

我已经放弃了,正在把整个事情搬到开罗。

最新更新