相关疑难解决方法(0)

Opengl linux undefined参考基本功能

我在Ubuntu 11.04上编写了一个使用freeglut的程序.它工作正常.然后我得到另一台计算机,并尝试在全新安装的Ubuntu 11.04上运行该程序.不行.所以我安装了

sudo apt-get install freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev mesa-common-dev gcc

并试图运行导入的程序



    #include <GL/freeglut.h>
    #include <GL/gl.h>
    #include <GL/glu.h>
Run Code Online (Sandbox Code Playgroud)

使用命令

g++ -lGL -lGLU -lglut Driver.cpp -o a

然而,链接器或其他任何东西吐出像200错误的形式:



    Driver.cpp:(.text+0x3c6b): undefined reference to `glutSolidSphere'
    Driver.cpp:(.text+0x3c75): undefined reference to `glEnable'
    Driver.cpp:(.text+0x3c9a): undefined reference to `glColor4f'
    Driver.cpp:(.text+0x3cb5): undefined reference to `glRotatef'
    Driver.cpp:(.text+0x3d02): undefined reference to `glutSolidSphere'
    Driver.cpp:(.text+0x3d07): undefined reference to `glutSwapBuffers'

Run Code Online (Sandbox Code Playgroud)

问题的原因是什么?

c++ linux opengl

6
推荐指数
1
解决办法
1万
查看次数

Magick ++链接错误

我这里有一个使用Magick ++(ImageMagick接口)库的简单图像转换器代码.(Eclipse IDE)

#include <Magick++.h>
#include <string>
#include <iostream>

using namespace std;

using namespace Magick;

int main(int argc,char **argv) 
{ 
    Image image; 
    image.read("/home/usr1/test.tiff");
    image.write( "/home/usr1/test.bmp" ); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用arm-linux目标进行交叉编译.代码编译成功,但在链接部分,我得到了未定义的引用错误.

/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x144): In function `vm_open':
ltdl/loaders/dlopen.c:194: undefined reference to `dlopen'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x158):ltdl/loaders/dlopen.c:198: undefined reference to `dlerror'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x16c): In function `vm_close':
ltdl/loaders/dlopen.c:212: undefined reference to `dlclose'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x17c):ltdl/loaders/dlopen.c:214: undefined reference to `dlerror'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x198): In function `vm_sym':
ltdl/loaders/dlopen.c:227: undefined reference to `dlsym'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x1ac):ltdl/loaders/dlopen.c:231: undefined reference to `dlerror'
Run Code Online (Sandbox Code Playgroud)

我使用以下命令编译代码:

/opt/Mx800SDK/vfitc/cross/bin/arm-linux-g++ -DMx870 -I/opt/Mx800SDK/vfitc/cross/arm-linux/include -I/usr/local/include/ImageMagick -I/opt/Mx800SDK/include -O2 -Wall …
Run Code Online (Sandbox Code Playgroud)

c++ linux imagemagick cross-compiling magick++

2
推荐指数
1
解决办法
3434
查看次数

标签 统计

c++ ×2

linux ×2

cross-compiling ×1

imagemagick ×1

magick++ ×1

opengl ×1