在macos上编译PHP-7.4 firebird驱动程序的问题

在macos上编译PHP-7.4 firebird驱动程序的问题,c,macos,firebird,php-7.4,C,Macos,Firebird,Php 7.4,我一直在尝试在macos上安装/编译php7.4的php firebird驱动程序,但到目前为止没有成功 驾驶员回购协议中存在一个问题,但在帮助方面没有太多进展。 到目前为止,我做到了: 已安装https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/FirebirdCS-2.5.9-27139-x86_64.pkg(也在firebird 3.x上试用过) 将此回购克隆到php firebird cdphp firebir

我一直在尝试在macos上安装/编译php7.4的php firebird驱动程序,但到目前为止没有成功

驾驶员回购协议中存在一个问题,但在帮助方面没有太多进展。

到目前为止,我做到了:

  • 已安装<代码>https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/FirebirdCS-2.5.9-27139-x86_64.pkg(也在firebird 3.x上试用过)
  • 将此回购克隆到
    php firebird
  • cd
    php firebird
  • phpize
  • CPPFLAGS=-I/Library/Frameworks/Firebird.framework/Versions/Current/Headers-LDFLAGS=-L/Library/Frameworks/Firebird.framework/Versions/Current/Libraries./configure
  • make
    。。。这就是错误开始的地方

  • Firebird 3.0中引入的关于布尔数据类型的错误清楚地表明您的PHP库需要Firebird 3+,但您提供了FB2.5或更早版本的源代码

    CPPFLAGS=-I/Library/Frameworks/Firebird.framework/Versions/Current/Headers 
    LDFLAGS=-L/Library/Frameworks/Firebird.framework/Versions/Current/Libraries 
    
    我认为在您安装FB2.5之后,您提到的
    版本/当前
    被创建为2.5源代码的符号链接。如果您确实安装了3.0源代码,请检查
    Versions/Current
    symlink指向的位置,如果需要,将其更改为3.0源代码(
    ln-s
    在Linux上,在BSD命令行utils上猜测相同)

    快速检查可能会在该位置打开
    ibase.h
    ,并检查API版本声明:现在在我的Windows框中,第三个非注释行如下:
    #在安装了Firebird 2.1.7的文件夹中的该文件中定义FB_API_VER 21

    或者调整
    CPPFLAGS
    LDFLAGS
    以及其他变量,以指向特定的3.x版本源,而不是一些模糊的“默认”或“当前”


    当然,这种标志调整仅在需要FB2.5源作为“当前”源安装的情况下才有意义,因为FB3源有其他用途。我不知道UNIX喜欢什么,但至少在Windows上,安装/运行几个不同甚至相同版本的Firebird服务器是很简单的,有时也很方便。一些未来的读者可能也会遇到这种情况。

    Firebird 3.0中引入的布尔数据类型错误清楚地表明您的PHP库需要Firebird 3+,但您提供了FB 2.5或更早版本的源代码

    CPPFLAGS=-I/Library/Frameworks/Firebird.framework/Versions/Current/Headers 
    LDFLAGS=-L/Library/Frameworks/Firebird.framework/Versions/Current/Libraries 
    
    我认为在您安装FB2.5之后,您提到的
    版本/当前
    被创建为2.5源代码的符号链接。如果您确实安装了3.0源代码,请检查
    Versions/Current
    symlink指向的位置,如果需要,将其更改为3.0源代码(
    ln-s
    在Linux上,在BSD命令行utils上猜测相同)

    快速检查可能会在该位置打开
    ibase.h
    ,并检查API版本声明:现在在我的Windows框中,第三个非注释行如下:
    #在安装了Firebird 2.1.7的文件夹中的该文件中定义FB_API_VER 21

    或者调整
    CPPFLAGS
    LDFLAGS
    以及其他变量,以指向特定的3.x版本源,而不是一些模糊的“默认”或“当前”


    当然,这种标志调整仅在需要FB2.5源作为“当前”源安装的情况下才有意义,因为FB3源有其他用途。我不知道UNIX喜欢什么,但至少在Windows上,安装/运行几个不同甚至相同版本的Firebird服务器是很简单的,有时也很方便。一些未来的读者可能也会遇到这种情况。

    正如我之前在该问题上所说的,您需要使用Firebird 3或更高版本的标题进行编译。Firebird 2.5的标题没有定义
    blr\u bool
    SQL\u BOOLEAN
    。请尝试使用Firebird 3,并在使用该版本编译时显示结果。当我在计算机上打开“c:\Program Files(x86)\Firebird\Firebird\u 2\u 1\include\ibase.h”时文件中的第三行非注释如下:
    #定义FB_API第21版
    -你说的是
    /Library/Frameworks/Firebird.framework/Versions/Current/Headers
    -版本在那里引用了什么???我认为在您安装FB2.5之后,
    Versions/Current
    被创建为2.5源代码的符号链接。如果您确实安装了3.0源代码,那么请检查
    Versions/Current
    symlink指向的位置,如果需要,将其更改为3.0源代码(
    ln-s
    在Linux上,在BSD命令行utils上猜也是如此)@Arioch'这就是诀窍,似乎在安装v3之前我还没有完全删除v2.5。在那之后,编译成功了。多亏了这两个。正如我在前面提到的,您需要使用Firebird 3或更高版本的头进行编译。Firebird 2.5的标题没有定义
    blr\u bool
    SQL\u BOOLEAN
    。请尝试使用Firebird 3,并在使用该版本编译时显示结果。当我在计算机上打开“c:\Program Files(x86)\Firebird\Firebird\u 2\u 1\include\ibase.h”时文件中的第三行非注释如下:
    #定义FB_API第21版
    -你说的是
    /Library/Frameworks/Firebird.framework/Versions/Current/Headers
    -版本在那里引用了什么???我认为在您安装FB2.5之后,
    Versions/Current
    被创建为2.5源代码的符号链接。如果您确实安装了3.0源代码,那么请检查
    Versions/Current
    symlink指向的位置,如果需要,将其更改为3.0源代码(
    ln-s
    在Linux上,在BSD命令行utils上猜也是如此)@Arioch'这就是诀窍,似乎在安装v3之前我还没有完全删除v2.5。在那之后,编译成功了。多亏了这两个。