【问题标题】:Linker error in the makefile using OpenGL使用 OpenGL 的生成文件中的链接器错误
【发布时间】:2014-05-22 12:53:07
【问题描述】:

在 ubuntu 14.04 下使用 OpenGL 和 wxWidgets 编译我的项目时,我收到了这个错误(链接 .o):

cc   GUI.o Fenetre.o Vue_OpenGL.o Enceinte.o Systeme.o GLNeon.o GLArgon.o Particule.o Vecteur.o  `wx-config --libs gl,core,base` -lGLU -lGL -lglut -lrt -o GUI
/usr/bin/ld: GUI.o: référence au symbole non défini «__cxa_pure_virtual@@CXXABI_1.3»
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [GUI] Erreur 1

我安装了所有库(freeglut3、freeglut3 -dev、...)

这是我的生成文件:

CXX=g++-4.8
CXXFLAGS += `wx-config --cxxflags` -std=c++11 
CXXFLAGS +=  -g
LDLIBS   += `wx-config --libs gl,core,base` -lGLU -lGL -lglut -lrt

TARGETS=GUI

all:: $(TARGETS)


Fenetre.o : Fenetre.cc Fenetre.h

GUI.o : GUI.cc GUI.h

Vue_OpenGL.o : Vue_OpenGL.cc Vue_OpenGL.h

Vecteur.o: Vecteur.cc Vecteur.h

Systeme.o: Systeme.cc Systeme.h GenerateurAleatoire.h

Particule.o: Particule.cc Particule.h

GLArgon.o: GLArgon.cc GLArgon.h

GLNeon.o: GLNeon.cc GLNeon.h

Enceinte.o: Enceinte.h Enceinte.cc

GUI : GUI.o Fenetre.o Vue_OpenGL.o Enceinte.o Systeme.o GLNeon.o GLArgon.o Particule.o Vecteur.o

【问题讨论】:

  • Linker order - GCC的可能重复
  • -lstdc++ 添加到LDLIBS 的末尾应该可以解决这个问题。
  • 嗨,所以我添加了这个并且我有一个新错误 cc GUI.o Fenetre.o Vue_OpenGL.o Enceinte.o Systeme.o GLNeon.o GLArgon.o Particule.o Vecteur.o @987654326 @ -lGLU -lGL -lglut -lrt -lstdc++ -o GUI /usr/bin/ld: Systeme.o: référence au symbole non défini «cos@@GLIBC_2.2.5» //lib/x86_64-linux-gnu/libm。 so.6:添加符号时出错:命令行collect2中缺少DSO:错误:ld返回1退出状态make:*** [GUI] Erreur 1任何想法?
  • 您还需要添加-lm ;) 链接器基本上是在告诉您需要做什么:lib m .so.6 是-lm

标签: c++ opengl linker makefile wxwidgets


【解决方案1】:

您必须使用 c++ 而不是 cc 来链接 C++ 程序。为此,您需要定义显式链接的方法,而不是依赖隐式链接,即 GUI.o: $(OBJECTS) $(CXX) -o $@ $(LDFLAGS) $(OBJECTS) $(LIBS)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多