Normal vs. Standalone FreeBASIC
 

从源码构建时,FreeBASIC可以配置并安装在以下两种不同的设置之一中:

正常建立(默认)
独立版本
 
正常目录布局:
  • 斌/
    • fbc.exe
    • [<target>-]ld.exe
    • other tools for native/cross compilation...
  • 包括/
    • freebasic /
      • fbgfx.bi
      • other headers...
  • LIB /
    • freebasic /
      • <目标>/
        • libfb.a
        • other libraries...
独立目录布局:
  • 斌/
    • <目标>/
      • ld.exe
      • other tools...
  • INC /
    • fbgfx.bi
    • other headers...
  • LIB /
    • <目标>/
      • libfb.a
      • other libraries...
  • fbc.exe
 
与独立构建的区别:

  • fbc位于bin/,与其他程序一样
  • include/freebasic/中查找包含的内容,而不是inc/,以便将FB头与系统标头
  • lib/freebasic/而不是lib/中查找自己的库,将FB库与系统库清理分开
  • bin/和2)中查找binutils / gcc 1)依赖于PATH
  • lib/freebasic/和2)中查找crt / gcc库1),运行“gcc -print-file-name=...
  • -target选项接受系统三元组,例如“i686-pc-linux-gnu”或“x86_64-w64-mingw32
  • 给予-target选项的目标名称在交叉编译时被添加到gcc / binutils程序名称
  • 与标准的/usr/usr/local目录兼容
  • 通常用于FB-linux版本
  • 使用binutils的windres编译win32资源脚本

这使得正常的FB构建与GNU / Linux发行版和其他类Unix系统完美集成,允许fbc安装到gcc旁边的MinGW或DJGPP树中,并允许fbc使用binutils / gcc交叉编译工具链。
与正常构建的差异:

  • fbc二进制位于toplevel,不在bin/
  • 寻找bin/<target>/内的工具,即它使用bin/<target>/ld.exe而不是bin/[<target>-]ld.exe
  • 寻找FB包含inc/,而不在include/freebasic/
  • 寻找lib/中的图书馆,而不是lib/freebasic/
  • 不试图依赖PATH并使用系统工具
  • 不尝试查询gcc查找文件
  • -target只接受简单的FB目标名称,没有系统三元组
  • 通常用于FB-dos和FB-win32版本
  • 使用GoRC编译win32资源脚本

独立版本旨在用于独立安装,如传统的FB-win32和FB-dos版本。它还允许将fbc添加到PATH,而无需添加整个bin/目录。