我无法关联我的申请: 我得到了未定义的符号引用' 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在哪里?
答案 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的代码。
我放弃了,并将整个事情转移到开罗。