fglut / libfglut.a(freeglut_state.o):未定义的符号引用' XGetWindowAttributes'

时间:2017-06-19 15:27:54

标签: makefile compilation

我正在使用make编译一个C ++程序,这是我得到的错误。

  

/ usr / bin / ld:fglut / libfglut.a(freeglut_state.o):对符号的未定义引用' XGetWindowAttributes'

     

// usr / lib / i386-linux-gnu / libX11.so.6:添加符号时出错:命令行中缺少DSO

     

collect2:错误:ld返回1退出状态

     

Makefile:55:目标' morphlines的配方'失败

     

make:*** [morphlines]错误1

我是初学者

1 个答案:

答案 0 :(得分:2)

  

/ usr / bin / ld:fglut / libfglut.a(freeglut_state.o):

这告诉我您静态链接libfglut *.a只是目标文件的存档)。执行此操作时,必须链接所有依赖项,因为实际编译到程序中的静态库中的目标文件将依赖于它们。

动态链接libfglut(这是GNU工具链的默认设置),因此您的程序将依赖libfglut.so,而libX11.so本身依赖于-lX11 - 或者添加{{1在最后一个链接步骤的命令行上 -lfglut之后的。在-Wl,-Bdynamic之前,您可能需要-lX11才能将链接器切换回动态链接。

如果这不能直接解决您的问题,建议您修改问题以包含您正在使用的Makefile的相关部分。