gpt4 book ai didi

php - 在 Windows 上编译 php_excel 和 LibXL

转载 作者:可可西里 更新时间:2023-11-01 09:26:15 35 4
gpt4 key购买 nike

我正在尝试在 Windows 上构建 PHP 以及用于 Excel 操作的流行 C 库,LibXL .这个库有一个原生的基于 PHP 对象的扩展名为 php_excel .我正在尝试将后者构建为 Windows 上的共享 DLL,而不是将其静态编译到 PHP 中进行分发。

我的编译起点是适用于 Windows 的 PHP 构建 wiki entry我正在按照推荐使用 Visual Studio 2008 和 Windows SDK 6.1。出于本说明中更多路径的目的,我的引用目录是 c:\php-sdk\php53dev\vc9\x86\。对 PHP 快照的引用显示为文件夹 php5.3-x,其中 x 是快照构建日期时间。

提取 PHP 快照后,我添加了 bin\libxl.dllinclude_c\*lib\libxl.libdeps 中的相应文件夹。

然后我将 php_excel 扩展提取到 php5.3-x\ext\excel-0.9.1

运行 buildconfconfigure --help 显示正在查看扩展。然后我正在运行:

configure --disable-all --enable-cli --with-excel=shared --disable-zts --disable-isapi --disable-nsapi
nmake

实现 DLL 的 VC9 非线程安全构建。

nmake 上,我遇到了 LibXL 中每个头文件的语法错误:

c:\php-sdk\php53dev\vc9\x86\deps\include\enum.h(4) : error C2061: syntax error: identifier 'libxl'
c:\php-sdk\php53dev\vc9\x86\deps\include\enum.h(4) : error C2059: syntax error: ';'
...

和 php_excel 的 excel.c 源代码中的语法错误:

ext\excel-0.9.1\excel.c(33) : error C2146: syntax error : missing ')' before identifier 'f'
ext\excel-0.9.1\excel.c(33) : error C2061: syntax error : identifier 'f'
ext\excel-0.9.1\excel.c(33) : error C2059: syntax error : ';'
ext\excel-0.9.1\excel.c(33) : error C2059: syntax error : ')'
...

例如,这是来自各自文件的这两部分:

enum.h

#ifndef ENUM_CPP_H
#define ENUM_CPP_H

namespace libxl { # line 4
...
}

excel.c

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "libxl.h"
#include <stdlib.h>

#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "ext/date/php_date.h"
#include "php_excel.h"
#include "zend_exceptions.h"

static long xlFormatBorder(FormatHandle f) # line 33
{
return 1;
}

我没有看到语法错误,但假设我在某处遗漏了一个明显的步骤?

最佳答案

我进行了构建并提出了修复构建的请求。在这里查看垃圾箱 http://www.php.net/~pierre/

关于php - 在 Windows 上编译 php_excel 和 LibXL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6008152/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com