gpt4 book ai didi

php - 为什么在编译 PHP 扩展 DLL 时会出现 LNK2005 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:02:24 26 4
gpt4 key购买 nike

我正在尝试在 VS2008 中编译一个 PHP 扩展。它依赖于我静态链接的其他 3 个项目。当我将所有代码都放在一个 .cpp 文件中时,它曾经工作得很好。我将代码分成几个文件以使其更易于管理,但现在无法编译。

我遇到了几个(每个文件约 100 个)链接器错误,LNK2005(已定义)。我认为它们都与运行时库相关。

到目前为止我已经尝试过

  • 干净重建。
  • 确保所有 4 个项目的/MTd 标志都相同。
  • 确保所有标题都受到保护。

有什么想法吗?

编辑:以下是一些错误:一些错误:

MPQBlock.obj : error LNK2005: _getwchar already defined in MPQArchive.obj
MPQBlock.obj : error LNK2005: _putwchar already defined in MPQArchive.obj
MPQBlock.obj : error LNK2005: _acosl already defined in MPQArchive.obj
MPQBlock.obj : error LNK2005: _asinl already defined in MPQArchive.obj
etc.
MPQFile.obj : error LNK2005: _asinf already defined in MPQArchive.obj
MPQFile.obj : error LNK2005: _atanf already defined in MPQArchive.obj
MPQFile.obj : error LNK2005: _atan2f already defined in MPQArchive.obj
MPQFile.obj : error LNK2005: _ceilf already defined in MPQArchive.obj
MPQFile.obj : error LNK2005: _cosf already defined in MPQArchive.obj
etc.
PHPExtension.obj : error LNK2005: _acosl already defined in MPQArchive.obj
PHPExtension.obj : error LNK2005: _asinl already defined in MPQArchive.obj
PHPExtension.obj : error LNK2005: _atanl already defined in MPQArchive.obj
PHPExtension.obj : error LNK2005: _atan2l already defined in MPQArchive.obj
etc.
zlibd.lib(zutil.obj) : warning LNK4217: locally defined symbol _malloc imported in function _zcalloc
zlibd.lib(zutil.obj) : warning LNK4217: locally defined symbol _free imported in function _zcfree
D:\Server\PHP\ext\php_mpq_library.dll : fatal error LNK1169: one or more multiply defined symbols found

最佳答案

更改可能有帮助的链接库的顺序...您可以发布一些错误吗...它会使图片更清晰...

  1. 点击设置。
  2. 单击以选择出现链接错误的项目配置。
  3. 在“链接”选项卡上,单击以选择“类别”组合框中的“输入”。
  4. 在“忽略库”框中,插入库名称(例如,Nafxcwd.lib;Libcmtd.lib)。

    注意/NOD: 中的链接器命令行等效项。

  5. 在对象/库模块框中,插入库名称。您必须确保这些库按顺序列出并作为行中的前两个库(例如,Nafxcwd.lib Libcmtd.lib)。

关于php - 为什么在编译 PHP 扩展 DLL 时会出现 LNK2005 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2403371/

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