Known problems when compiling FB
 

Win32 rtlib编译错误:wchar.h:unknown类型名称'dev_t'

http://sourceforge.net/p/mingw/bugs/2039/

来自MinGW.org的wchar.h头文件包含一个{_9____ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _n}声明,在_NO_OLDNAMES被定义时不会进行编译,因为它使用了__t_delete_mode下的_下划线前缀(_dev_t等)的dev_t,ino_t,mode_t。对于FB rtlib,我们在编译时定义_NO_OLDNAMES。

要解决此问题,请调整wchar.h并将_下划线前缀添加到struct _stat64声明中的typedef名称。

Win32 rtlib编译错误:_controlfp,_PC_64 undeclared

CC src/rtlib/obj/hinit.o
src/rtlib/win32/hinit.c: In function 'fb_hInit':
src/rtlib/win32/hinit.c:21:5: warning: implicit declaration of function '_controlfp' [-Wimplicit-function-declaration]
src/rtlib/win32/hinit.c:21:17: error: '_PC_64' undeclared (first use in this function)

MinGW.org运行时和GCC都有一个float.h头,在某些设置中,GCC之前是在MinGW之前找到的,导致上述错误。

最简单的临时修复:将#include_next <float.h>附加到gcc的float.hC:\MinGW\lib\gcc\[target]\[version]\include\float.h

也可以看看:
  • 顶部的评论C:\MinGW\include\float.h
  • http://sourceforge.net/p/mingw/bugs/1580/
  • http://sourceforge.net/p/mingw/bugs/1809/
  • http://gcc.gnu.org/ml/gcc-patches/2010-01/msg01034.html

MinGW binutils ld version 2.18 to 2.21

fbc在上述链接器版本中触发了一个错误(binutils ld bug 12614),导致它在某些情况下产生坏的二进制文件。它在binutils 2.21.1及以上修复。

MinGW.org运行时的globbing代码更改命令行参数的大小

http://sourceforge.net/p/mingw/bugs/2062/

MinGW.org的运行时(mingwrt-4.0.3)更改了给予程序的命令行参数的情况。如果参数与现有的文件/目录名匹配,只有在不同的情况下才进行调整,以匹配确切的拼写。这可能导致程序的问题,其命令行解析不区分大小写。例如,如果有一个名为Gui的目录,则gui成为Gui.这会影响fbc.exe的-s gui选项,使其无法使用,因为fbc.exe拒绝接受-s Gui.

-lXpm在Debian x86_64找不到

由于某些原因,ia32-libs-dev软件包(例如Debian 6)不包含/usr/lib32/libXpm.so符号链接,尽管它包含了其他X11开发库。这显然可以通过手动创建符号链接来修复:

ln -s /usr/lib32/libXpm.so.4 /usr/lib32/libXpm.so

DJGPP:打开的文件太多

如果DJGPP程序在Windows上出现too many open files 错误,则尝试以下操作来增加可用的文件句柄数:

    • 使用msconfigPerVMFiles=255添加到SYSTEM.INI[386Enh]部分
    • 编辑C:\WINDOWS\system32\CONFIG.NT中的files=设置:files=255
    • 另请参阅http://www.delorie.com/djgpp/v2faq/faq9_7.html