【问题标题】:C++ detours linking issueC++ 绕道链接问题
【发布时间】:2020-06-30 20:49:34
【问题描述】:

我在构建使用静态库弯路的代码时遇到问题。我正在尝试做一个旧的基本 CTF。为此,我想走弯路。 每当我尝试构建我的 .dll 文件时,我都会遇到问题

LNK2019 unresolved external symbol _DetourTransactionBegin@0 referenced in function _DllMain@12

现在,我使用 3 个不同版本的 Visual Studio 开发控制台构建了 detours 库。 我尝试触发'vcvars32.bat',然后使用nmake构建能够构建它的库,但在链接我的.dll期间出现上述错误。我也尝试使用 'vcvarsamd64_x86.bat' 构建它,然后使用 nmake 构建它,它也能够构建库,但在链接过程中我仍然遇到与上述相同的错误。

我已经尝试过通常的方法:detours.h 的包含文件夹被添加到 C++/General/Additional Include 目录中。

在链接器/附加库目录下,我将它们添加如下:"C:\temp\det_retry\lib.X64";"C:\temp\det_retry\lib.X86";%(AdditionalLibraryDirectories)。

在链接器/输入/附加依赖项下,我有以下内容:detours.lib;%(AdditionalDependencies)

我在这里缺少什么?这对我来说是几天的障碍,我重申相同的步骤试图找出丢失的内容,但我看不到。非常感谢您的意见。

我确定我使用的是最新版本,因为我已经从 ms github 页面下载(克隆)detours。

【问题讨论】:

    标签: c++ header linker-errors static-linking


    【解决方案1】:

    您的“附加库目录”似乎设置不正确或包含无效条目。它们看起来像实际的库文件条目(即指向某些特定文件)而不是仅仅是目录(例如“my/lib/path/for/my_project/”)。 Visual Studio 的命名约定有点神秘,但它们应该只是目录条目。任何包含 detours.lib 文件的目录都应该有一个条目(例如“MyProject/Libs/MSDetour”......其中 MSDetour 是一个包含“detours.lib”的文件夹),然后 Visual Studio 应该找到该库并正确链接所有内容。

    附带说明,如果您使用 Visual Studio 开发人员控制台来构建您的项目/解决方案,您可能需要研究 CMake ......在我看来,它更容易使用(更少的“设置”挖掘)并长期维护。

    【讨论】:

      猜你喜欢
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      相关资源
      最近更新 更多