2

我正在尝试创建一个用于pdfium使用 Visual Studio 2013 的 dll(如在 pdfium 中创建 dll 中),除了当我下载pdfium我设置的项目时DEPOT_TOOLS_WIN_TOOLCHAIN=0,因为现在,默认情况下,它们使用来自 depot_tools 的工具链。

但是在构建过程中我仍然遇到错误:

error LNK2019: unresolved external symbol _FPDF_BStr_Init referenced in function "public: class CFX_WideString __thiscall CPDFDoc_Environment::FFI_PostRequestURL(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *)" (?FFI_PostRequestURL@CPDFDoc_Environment@@QAE?AVCFX_WideString@@PB_W0000@Z) ..\pdfium\fpdfxfa.lib(fpdfxfa_app.obj) pdfium

和类似的_FPDF_BStr_Clear

error LNK2019: unresolved external symbol _FPDF_BStr_Clear referenced in function "public: class CFX_WideString __thiscall CPDFDoc_Environment::FFI_PostRequestURL( ...

我通过了,这可能是 xfa 的问题,所以我尝试在没有它的情况下构建 pdfium。我PDF_ENABLE_XFA从该解决方案中所有项目的预处理器定义中删除了,但后来我发现 fxcodec 和 fxcrt 没有该定义就无法构建。当我为该项目保留该定义时,我可以成功构建 pdfium 项目,但是当我在我的应用程序中使用它时,它会失败。

然后我尝试以不同的顺序执行并获得 dll,但没有使用 FPDFSDK_EXPORTS 定义。当我添加它时,会出现这些错误。

4

1 回答 1

3

您无需编辑构建命令即可禁用 XFA。当您运行时,gn args out/Debug您可以添加一个pdf_enable_xfa=false条目。您还可以使用 禁用 V8 pdf_enable_v8=false

最近添加了一个选项来为 PDFium 构建一个完整的库(尚未使用 V8 或 XFA 进行测试)。如果您添加pdf_is_complete_lib=true和构建,您应该只需要链接到生成的 libpdfium。

于 2017-04-04T02:50:01.003 回答