创建pdfium dll

时间:2016-07-14 11:25:05

标签: dll pdfium

我正在尝试使用Visual Studio 2013为pdfium创建一个dll(如在Creating a dll in pdfium中),除了当我下载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定义。当我添加它时,会出现这些错误。

1 个答案:

答案 0 :(得分:1)

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

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