首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >链接错误。也许是排序的问题?

链接错误。也许是排序的问题?
EN

Stack Overflow用户
提问于 2020-03-28 23:46:04
回答 1查看 31关注 0票数 0

我正在构建一个使用GTK+3和pango的程序。除了构建可执行文件的最后一位之外,大部分代码都可以很好地编译。最后一条命令是:

代码语言:javascript
运行
复制
gcc -o z80sim main.c -Wall -Iz80 -Igui obj/disas.o obj/iosim.o obj/sim0.o obj/sim1.o obj/sim2.o obj/sim3.o obj/sim4.o obj/sim5.o obj/sim6.o obj/sim7.o obj/simctl.o obj/simfun.o obj/simglb.o obj/simint.o obj/callbacks.o obj/code.o obj/guiglb.o obj/memory.o obj/flags.o obj/log.o obj/ports.o obj/registers.o `pkg-config --cflags --libs gtk+-3.0`

但是我得到了这个错误信息:

代码语言:javascript
运行
复制
obj/sim1.o: In function `cpu':
sim1.c:(.text+0x2cb): undefined reference to `check_gui_break'
obj/callbacks.o: In function `on_open1_activate':
callbacks.c:(.text+0x20): undefined reference to `Get_File'
:
:

其中check_gui_break是在sim1.c等中定义和调用的。

这与ld调用时目标文件和库的顺序有关,但我尝试在各个.o文件之前和之后放置pkg-config部分,但仍然给出相同的错误。

我已经阅读了内容非常丰富的https://eli.thegreenplace.net/2013/07/09/library-order-in-static-linking,但是,尽管我现在知道了更多,我仍然不能破解这篇文章。

顺便说一句。

代码语言:javascript
运行
复制
pkg-config --cflags --libs gtk+-3.0

给出

代码语言:javascript
运行
复制
-pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0

请一些仁慈的灵魂可怜我,开导我吧?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-03 21:35:44

我遇到的大多数错误似乎都是从Glade2过渡到Glade3的结果。在2中,Glade生成了一些C代码,这是我的代码中缺少的。回到参考手册,看看如何使代码现代化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60902977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档