无法在PHP上编译共享扩展

时间:2015-04-20 03:10:39

标签: javascript php c throws

我有一个PHP扩展名的文件,我现在已经维护了一段时间,并且它在一个目录中包含所有内容。然后我将一些文件移动到一个新目录wb/,并适当地添加了源代码,但编译扩展名会引发此错误:

   Creating library Release_TS\php5ts.lib and object Release_TS\php5ts.exp
wb_winsys.obj : error LNK2019: unresolved external symbol _wbError referenced in
 function _wbInit
wb_bitmap.obj : error LNK2001: unresolved external symbol _wbError
wb_control.obj : error LNK2001: unresolved external symbol _wbError
wb_control_toolbar.obj : error LNK2001: unresolved external symbol _wbError
wb_generic.obj : error LNK2001: unresolved external symbol _wbError
wb_winsys.obj : error LNK2019: unresolved external symbol _wbMalloc referenced i
n function _wbInit
wb_control_toolbar.obj : error LNK2001: unresolved external symbol _wbMalloc
wb_font.obj : error LNK2001: unresolved external symbol _wbMalloc
wb_generic.obj : error LNK2001: unresolved external symbol _wbMalloc
wb_window.obj : error LNK2001: unresolved external symbol _wbMalloc
wb_bitmap.obj : error LNK2001: unresolved external symbol _wbMalloc
wb_control.obj : error LNK2001: unresolved external symbol _wbMalloc
wb_control_calendar.obj : error LNK2001: unresolved external symbol _wbMalloc
wb_control_menu.obj : error LNK2001: unresolved external symbol _wbMalloc
wb_window.obj : error LNK2019: unresolved external symbol _wbFree referenced in
function _wbSetTimer
wb_winsys.obj : error LNK2001: unresolved external symbol _wbFree
wb_bitmap.obj : error LNK2001: unresolved external symbol _wbFree
wb_control.obj : error LNK2001: unresolved external symbol _wbFree
wb_font.obj : error LNK2001: unresolved external symbol _wbFree
wb_generic.obj : error LNK2001: unresolved external symbol _wbFree
wb_bitmap.obj : error LNK2019: unresolved external symbol _WideChar2Utf8 referen
ced in function _ReadBitmap
wb_winsys.obj : error LNK2001: unresolved external symbol _WideChar2Utf8
wb_control.obj : error LNK2019: unresolved external symbol _wbCallUserFunction r
eferenced in function _wbRefreshControl
wb_window.obj : error LNK2001: unresolved external symbol _wbCallUserFunction
Release_TS\php5ts.dll : fatal error LNK1120: 5 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0
\VC\BIN\cl.exe"' : return code '0x2'
Stop.

C:\Users\Administrator\Desktop\phc-win>

这让我相信它没有正确联系。

配置如下:

// $Id$
// vim:ft=javascript

ARG_WITH("winbinder", "Include windows GUI support", "no");

if (PHP_WINBINDER == "yes") {
    CHECK_HEADER_ADD_INCLUDE("wb/wb.h", "CFLAGS_INTL")

    EXTENSION("winbinder", "phpwb_bitmap.c phpwb_control.c phpwb_control_listview.c\
    phpwb_control_menu.c phpwb_control_toolbar.c phpwb_control_treeview.c\
    phpwb_draw.c phpwb_export.c phpwb_font.c phpwb_generic.c phpwb_lowlevel.c\
    phpwb_sysdlg.c phpwb_wb_lib.c phpwb_window.c phpwb_winsys.c", "-Iext\\wibinder\\wb");

    ADD_SOURCES("ext\\winbinder\\wb", "wb_bitmap.c wb_control.c\
    wb_control_calendar.c wb_control_html.c wb_control_hyperlink.c\
    wb_control_listview.c wb_control_menu.c wb_control_tab.c wb_control_toolbar.c\
    wb_control_treeview.c wb_draw.c wb_font.c wb_generic.c wb_lowlevel.c\
    wb_sysdlg.c wb_window.c wb_winsys.c")

    AC_DEFINE('HAVE_WINBINDER', 1, 'Include windows GUI support', false);
}

如果需要,可以在https://github.com/stefan-loewe/WinBinder找到代码,但这应该只是我的配置问题。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

答案正如@Jack在评论中所说的那样......是在命令行中加入-lwb。这使链接器正常工作,一切都很好!

TL; DR:不要忘记配置链接器