【问题标题】:Compiling php_excel and LibXL on Windows在 Windows 上编译 php_excel 和 LibXL
【发布时间】:2011-05-15 11:38:45
【问题描述】:

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

我的编译起点是 Windows wiki entry 的 PHP 构建,我按照推荐使用 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.lib添加到deps中的相应文件夹中。

然后我将 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;
}

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

【问题讨论】:

    标签: php windows compilation


    【解决方案1】:

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

    【讨论】:

    • 非常感谢 Pierre - 关于我在哪里编译出错的任何提示?我仍然希望在本地进行这些编译,并且我收到相同的错误,即使使用包括your change commits 在内的 php_excel 版本和今天早上的新 PHP 5.3 快照也是如此。这适用于 TS 和 NTS 构建。
    • 再次感谢 Pierre,现在为我编译 your latest commit
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2016-05-05
    • 2015-01-09
    • 2021-08-16
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多