编译此文件时
g++ -m64 -Wl,-O1 -o qjoypad
axis.o axis_edit.o axisw.o button.o button_edit.o buttonw.o event.o flash.o icon.o joypad.o joypadw.o joyslider.o keycode.o layout.o layout_edit.o main.o quickset.o getkey.o moc_axis.o moc_axis_edit.o moc_button.o moc_button_edit.o moc_flash.o moc_icon.o moc_joypad.o moc_joypadw.o moc_keycode.o moc_layout.o moc_getkey.o moc_layout_edit.o
-L/usr/lib/x86_64-linux-gnu -lXtst -lQtGui -lQtCore -lpthread -lXtst
我收到以下错误:
/usr/bin/ld: keycode.o: undefined reference to symbol 'XKeycodeToKeysym'
//usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
但是,符号只是一个全局变量:
$ readelf -s /usr/lib/x86_64-linux-gnu/libX11.so.6 | grep XKeycode
259: 000000000008a000 646 FUNC GLOBAL DEFAULT 11 XKeycodeToKeysym
1308: 0000000000029830 73 FUNC GLOBAL DEFAULT 11 _XKeycodeToKeysym
我发现了这个question,但是用户只是在错误的位置链接,或者question与pkgconfig
相关联。据我所知,我的构建命令应该是正确的。
答案 0 :(得分:0)
发现了这个问题。由于某种原因,我必须特别包含-lX11
命令没有执行的.configure
。
答案 1 :(得分:0)
在Makefile中查找
LIBS = -lfoo -lbar ...
并将其添加到那里。