2016-07-14 70 views
1

我想創建一個dll除了將pdfium使用Visual Studio 2013(在Creating a dll in pdfium)當我下載pdfium項目,我設置DEPOT_TOOLS_WIN_TOOLCHAIN=0,因爲現在,在默認情況下,他們使用的工具鏈從depot_tools。創建pdfium DLL

但在生成過程中我還得到一個錯誤:

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 *)" ([email protected][email protected]@[email protected]@[email protected]) ..\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

您不需要編輯構建命令來禁用XFA。當您運行gn args out/Debug時,您可以添加一個pdf_enable_xfa=false條目。您也可以使用pdf_enable_v8=false禁用V8。

最近增加了一個選項來爲PDFium構建完整的庫(尚未使用V8或XFA進行測試)。如果你添加了pdf_is_complete_lib=true並建立你應該只需鏈接到生成的libpdfium。