我正在尝试在Athena
linux上编译和链接Ubuntu
Xt程序。
我已将程序编译成目标文件但无论如何都无法将其与Xt库链接。
我的链接器调用是
ld /usr/lib/x86_64-linux-gnu/libXt.a program.o
我收到此链接器错误
program.o: In function `main':
program.c:(.text+0x37): undefined reference to `XtInitialize'
program.c:(.text+0x42): undefined reference to `commandWidgetClass'
program.c:(.text+0x5e): undefined reference to `XtCreateManagedWidget'
program.c:(.text+0x75): undefined reference to `XtStrings'
program.c:(.text+0x7d): undefined reference to `XtAddCallback'
program.c:(.text+0x89): undefined reference to `XtRealizeWidget'
program.c:(.text+0x8e): undefined reference to `XtMainLoop'
我用Xt
探测nm
库,并且符号在那里:
nm /usr/lib/x86_64-linux-gnu/libXt.a | grep XtInitialize
U _XtInitializeActionData
0000000000000360 T XtInitializeWidgetClass
00000000000018b0 T XtInitialize
U XtInitializeWidgetClass
00000000000006d0 T _XtInitializeActionData
U XtInitializeWidgetClass
知道什么是错的吗?
答案 0 :(得分:1)
尝试:
ld program.o /usr/lib/x86_64-linux-gnu/libXt.a
对于ld的参数顺序很重要,它希望在带有引用的目标文件之后找到库。