2009-11-21 06:49:58 |
Flamey |
description |
Description: Ubuntu 9.10
Release: 9.10
libftgl2:
Installed: 2.1.3~rc5-2
Candidate: 2.1.3~rc5-2
Version table:
*** 2.1.3~rc5-2 0
500 http://us.archive.ubuntu.com karmic/universe Packages
100 /var/lib/dpkg/status
libftgl2:
Installed: 2.1.3~rc5-2
Candidate: 2.1.3~rc5-2
Version table:
*** 2.1.3~rc5-2 0
500 http://us.archive.ubuntu.com karmic/universe Packages
100 /var/lib/dpkg/status
When using the C interface function ftglGetLayoutBBox, the function is not found in the library.
$ readelf -s /usr/lib/libftgl.so|grep LayoutBBox
579: 0000000000023bf0 313 FUNC GLOBAL DEFAULT 11 ftgGetlLayoutBBox
$ grep GetLayoutBBox /usr/include/FTGL/FTLayout.h
FTGL_EXPORT void ftglGetLayoutBBox(FTGLlayout *layout, const char* string,
Readelf shows that the function is named incorrectly (ftgGetlLayoutBBox), but the header FTLayout.h declared the function as ftglGetLayoutBBox. |
Description: Ubuntu 9.10
Release: 9.10
libftgl2:
Installed: 2.1.3~rc5-2
Candidate: 2.1.3~rc5-2
Version table:
*** 2.1.3~rc5-2 0
500 http://us.archive.ubuntu.com karmic/universe Packages
100 /var/lib/dpkg/status
When it try to compile an example that tries to call ftglGetLayoutBBox I get a link error.
$ cat example.c
#include <FTGL/ftgl.h>
int main(int argc, char **argv) {
float bbox[6];
ftglGetLayoutBBox(NULL, "Hello, world!", bbox);
return 0;
}
$ gcc $(pkg-config --cflags --libs ftgl freetype2) -lglut example.c &&./a.out
/tmp/cc8b7sZG.o: In function `main':
example.c:(.text+0x21): undefined reference to `ftglGetLayoutBBox'
collect2: ld returned 1 exit status
However the expected result is
$ gcc $(pkg-config --cflags --libs ftgl freetype2) -lglut example.c &&./a.out
FTGL warning: NULL pointer in _ftglGetLayoutBBox
The bug is caused by a discrepancy between the function name in the header and library.
$ readelf -s /usr/lib/libftgl.so|grep LayoutBBox
579: 0000000000023bf0 313 FUNC GLOBAL DEFAULT 11 ftgGetlLayoutBBox
$ grep GetLayoutBBox /usr/include/FTGL/FTLayout.h
FTGL_EXPORT void ftglGetLayoutBBox(FTGLlayout *layout, const char* string,
Readelf shows that the function is named incorrectly (ftgGetlLayoutBBox), but the header FTLayout.h declared the function as ftglGetLayoutBBox.
|
|