【问题标题】:qpdf with visual studio console project but lnk1107 - a dll cannot read at 0x308带有 Visual Studio 控制台项目但 lnk1107 的 qpdf - dll 无法在 0x308 处读取
【发布时间】:2022-08-06 21:10:24
【问题描述】:

我按照这个链接下载构建的目录,尝试以一种简单的方式使用 qpdf 库。 How to build qpdf on Windows?

我执行以下步骤来设置我的 Visual Studio 项目:

1. C/C++ -> General -> Additional Include Directories : qpdf-10.3.3\\include
2. Linker -> General -> Additional Library Directories : qpdf-10.3.3\\bin;qpdf-10.3.3\\lib
3. Linker -> General -> Additional Dependencies :
      C:\\SDKs\\qpdf-10.6.3\\bin\\libgcc_s_dw2-1.dll
      C:\\SDKs\\qpdf-10.6.3\\bin\\libstdc++-6.dll
      C:\\SDKs\\qpdf-10.6.3\\bin\\libwinpthread-1.dll
      C:\\SDKs\\qpdf-10.6.3\\bin\\qpdf28.dll

,然后我尝试来自 qpdf github 示例的示例代码: https://github.com/qpdf/qpdf/blob/main/examples/pdf-attach-file.cc

最后,我得到了一个错误(和一个警告),即

Error   
Code    Description                                     File                               Line 
LNK1107 invalid or corrupt file: cannot read at 0x308   C:\\qpdf-10.6.3\\bin\\libgcc_s_dw2-1.dll   1

Warning 
C26495  Variable \'QPDFObjectHandle::TokenFilter::pipeline\' is uninitialized. Always initialize a member variable (type.6).  qpdf_t01    C:\\qpdf-10.6.3\\include\\qpdf\\QPDFObjectHandle.hh 172 

虽然此时,我发现我可以在命令行终端中使用 bin\\qpdf.exe。

但我想我可以将它用作 C++ 库,那么我在这里错过了什么?

感谢任何建议。

  • 对于步#3。,你必须提供.lib文件.查看[SO]: LNK2005 Error in CLR Windows Form (@CristiFati\'s answer) 了解更多详情。这网址您提供的不包含您采取的步骤,官方页面也不包含。
  • lib 文件夹 \"libqpdf.dll.a\" 中只有一个文件,我将其包含在第 3 步中,但仍然出现相同的错误。然后我也尝试从这个方法构建.lib \"Generating LIB File for DLL Library\"link,option1:来自这四个dll,option2:来自libqpdf.dll.a。所有选项都遇到相同的错误。我知道 .lib 是现在的问题,但没有解决它的线索。有什么猜测/建议吗?

标签: visual-c++ dll lnk qpdf


【解决方案1】:

回答我自己的问题至少提供一些信息。

我发现我错误地下载了 bin-mingw32.zip,而不是我想要的 bin-msvc32.zip。

msvc linker reference - link input files,表明我不应该将 dll 放在第 3 步中。然后 put dlls in executable-directory 并添加系统环境的路径。最后它起作用了。

抱歉,我仍然有一些黑匣子,所以我无法详细解释所发现的差异。也许我可以用更多关于链接的知识来编辑我的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2013-10-18
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多