我汇编与MinGW在Windows7、使用代码::块IDE。一切都应该是最新的。我注意到有一些类似的问题,但这似乎是有关联的一个动态的图书馆,不编制的静态图书馆。

我正尝试使用FTGL能够使用的文本载.FTGL需要FreeType2进行安装。我下载了FreeType源,并随后的安装。GNU指令建立的静态的图书馆从CMD.EXE使用mingw32-make.exe.

如说明所指出的,我跑mingw32-使从基本目录的FreeType安装。控制台输出是因为预期:

D:\freetype-2.4.4>mingw32-make

FreeType build system -- automatic system detection

The following settings are used:

  platform                     win32
  compiler                     gcc
  configuration directory      .\builds\win32
  configuration rules          .\builds\win32\w32-gcc.mk

If this does not correspond to your system or settings please remove the file
'config.mk' from this directory then read the INSTALL file for help.

Otherwise, simply type 'make' again to build the library.
or 'make refdoc' to build the API reference (the latter needs python).

Could Not Find D:\freetype-2.4.4\objs\ftmodule.h
Generating modules list in ./objs/ftmodule.h...
"* module: truetype  (Windows/Mac font files with extension *.ttf or *.ttc)"
"* module: type1     (Postscript font files with extension *.pfa or *.pfb)"
"* module: cff       (OpenType fonts with extension *.otf)"
"* module: cid       (Postscript CID-keyed fonts, no known extension)"
"* module: pfr       (PFR/TrueDoc font files with extension *.pfr)"
"* module: type42    (Type 42 font files with no known extension)"
"* module: winfnt    (Windows bitmap fonts with extension *.fnt or *.fon)"
"* module: pcf       (pcf bitmap fonts)"
"* module: bdf       (bdf bitmap fonts)"
"* module: sfnt      (helper module for TrueType & OpenType formats)"
"* module: autofit   (automatic hinting module)"
"* module: pshinter  (Postscript hinter module)"
"* module: raster    (monochrome bitmap renderer)"
"* module: smooth    (anti-aliased bitmap renderer)"
"* module: smooth    (anti-aliased bitmap renderer for LCDs)"
"* module: smooth    (anti-aliased bitmap renderer for vertical LCDs)"
"* module: psaux     (Postscript Type 1 & Type 2 helper module)"
"* module: psnames   (Postscript & Unicode Glyph name handling)"
done.

看到两者的平台,并编译器是正确的,我跑了出命令,再次:

D:\freetype-2.4.4>mingw32-make
(bunch of calls, building objects then linking them, until:)
ar: creating objs/freetype.a

此产生的文件freetype.一个目录D:\freetype-2.4.4\objs.

然后我做了步骤,在代码::块的链接,该图书馆的项目,加入一个样品点的代码来测试FTGL,并试图建立它。

我有两个错误,取决于如何,我尽量做到的事情。

如果我提供正确的目录以连接(-LD:\freetype-2.4.4\objs)和链接-lfreetype,一切都很好直到ld.exe 退出错误的标题,不能找到-lfreetype.

如果我不提供正确的目录中,我得到同样的错误。不能找到图书馆。

如果我改变名称的文件,freetype.一、libfreetype.一,并且提供正确的目录,而不是我得到几个未定义的参考。

obj\Release\CApp_OnRender.o:CApp_OnRender.cpp:(.text+0x250): undefined reference to `FTPixmapFont::FTPixmapFont(char const*)'
obj\Release\CApp_OnRender.o:CApp_OnRender.cpp:(.text+0x258): undefined reference to `FTFont::Error() const'
obj\Release\CApp_OnRender.o:CApp_OnRender.cpp:(.text+0x274): undefined reference to `FTFont::FaceSize(unsigned int, unsigned int)'
obj\Release\CApp_OnRender.o:CApp_OnRender.cpp:(.text+0x308): undefined reference to `FTFont::Render(char const*, int, FTPoint, FTPoint, int)'
obj\Release\CApp_OnRender.o:CApp_OnRender.cpp:(.text+0x316): undefined reference to `FTPixmapFont::~FTPixmapFont()'
obj\Release\CApp_OnRender.o:CApp_OnRender.cpp:(.text+0x328): undefined reference to `FTPixmapFont::~FTPixmapFont()'
collect2: ld returned 1 exit status

如果我提供了错误的目录,我再次获得以前的错误,它不可能找到图书馆。

我发现很奇怪,使会,在以下方在安装的文件,产生一个图书馆与一名没有开始lib。我检查了每一个其他。文件的开始与lib-.并且它似乎是连接是在寻找的文件libfreetype.a.所以为什么是使创建freetype.一个呢?这是使用同样的编译器库,我使用的编译程序。

不管怎样,不确定去哪里离这里。我以为使用不能马壳的一部分MinGW揽子,但我没有太多的经验和指令在安装。UNIX假设你知道的越明显的命令。他们提到使用。/配置[选择],没有提到什么样的选择可能是可取的。可能明显有人有更多的知识的系统,但不能马是我的第一个经验与sh。

我感谢所有帮助这一问题。

有帮助吗?

解决方案

我的版本的libfreetype.a(2.4.4,建立从修改软件包)不出口的符号,你的头是寻找(FTPixmapFont constructor),也不做头声明这一类。一个快速的谷歌搜索表示他们属于FTGL.

重新命名你的进口文件libfreetype.一个是正确的(mingw ld不会找到它,否则),但你也链接到必要的FTGL库?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top