在macos上编译PHP-7.4 firebird驱动程序的问题
我一直在尝试在macos上安装/编译php7.4的php 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
php firebird
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。在那之后,编译成功了。多亏了这两个。