如何手动将库添加到 Visual Studio 2017 项目?

Posted

技术标签:

【中文标题】如何手动将库添加到 Visual Studio 2017 项目?【英文标题】:How to manually add a library to a visual studio 2017 project? 【发布时间】:2018-09-10 03:57:59 【问题描述】:

对于这个以前肯定被问过和回答过的非常基本的问题,以及我非常过时的术语,我深表歉意。我搜索了答案,但没有找到任何有用的东西。我正在使用 VS 2017 Community 的最新更新,并且我正在尝试将我曾经称为“函数库”的内容手动添加到位于“解决方案”下的项目中。

该项目只是一个 C++ 或 C# 控制台应用程序。我拥有的是一个 .h(头文件)文件、一个 .lib(静态库)文件和一个 .dll(动态库)文件。我打算对这个库进行“函数调用”。我知道我需要将我的 dll 放在可执行文件所在的调试文件夹中,但我不确定如何在 VS 2017 中“添加依赖项”。我知道如何管理和安装 NuGet 包,但这些文件是不是一个方便的 NuGet 包。

我希望获得有关以正确方式(VS 2017)执行此操作的建议。

【问题讨论】:

看看How to add references in VS2017,可能会有帮助。 @vikscool,感谢您提供的链接。绝对值得一读,但它并没有专门提到旧的静态库和头文件。但我会试一试。 【参考方案1】:

在这种情况下我要做的是创建一个文件夹,我使用C:\Etc\SDKs\<name_of_library>,然后在该文件夹中创建一个include 子文件夹和一个lib 子文件夹。请注意,***文件夹的选择完全是任意的,请将其放在对您最有意义的位置。

General 选项卡上项目属性的C/C++ 部分或C# 项目的相应部分中,有一个Additional include directories 条目。在此处添加新创建的include 文件夹的路径。这会让你包含头文件并让它正常工作。

在项目属性的Linker 部分,也在其General 选项卡上,有一个对应的Additional library directories 条目。将路径添加到您的lib 文件夹。在下一个选项卡上:Input 有一个 Additional Dependencies 条目。在此处添加库文件的实际名称。

这些步骤应该允许使用您拥有的 .h.lib.dll 文件构建您的项目。

-- 编辑地址 cmets--

.lib 文件确实在...\lib 文件夹中,.h 文件在...\include 中,这是正确的。但是,您在原始问题中的 .dll 位置正确。这需要位于可执行文件将找到的搜索路径上的某个位置,因此最简单的位置是与可执行文件相同的文件夹。

General 选项卡对我来说是一个糟糕的选择。 General 部分在这里可能会更好。查看项目属性时,最左侧的窗格是各种属性部分的树视图。一切都关闭了,除了最上面的项目打开,你会看到

Configuration Properties
    General
    Debugging
    VC Directories
  > C/C++
  > Linker
    ...

如果您随后双击 C/C++,它将打开,并显示特定于 C/C++ 编译器的部分:

Configuration Properties
    General
    Debugging
    VC Directories
  V C/C++
      General     <<<<<
      Optimization
      Preprocessor
      ...
  > Linker
    ...

如果您单击我突出显示的“常规”一词,您将进入我所说的“常规”部分/选项卡。

同样,双击单词Linker 将打开该部分,在该部分下您会找到链接器GeneralInput 部分。

如果这还不清楚,请告诉我,我会尽力澄清。

【讨论】:

好的,感谢您的建议。我会试一试,然后在这里报告。 那么,我是否将 .lib 文件放在 \library 子文件夹中? .h 和 .dll 文件放在 \include 文件夹中吗?显然我错过了一些东西。也许没关系。 好吧,我放弃了 C# 项目。我创建了一个 C++ 控制台应用程序,并且能够将 .h 文件添加到“头文件”下的项目中。从未在任何地方找到“常规”选项卡,因此无法找到“其他库目录”的条目。叹。不过感谢您的建议。 好吧..这是很好的澄清。现在我的油箱里有更多的气体。我会试一试并报告。 在项目属性的链接器部分,也在其常规选项卡上,有一个对应的附加库目录条目。此部分在 VS 2017 15.9.14 中不存在.过去几天我一直在尝试链接 .lib 文件,为什么这么难?这太荒谬了。

以上是关于如何手动将库添加到 Visual Studio 2017 项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何将命令行代码生成器添加到 Visual Studio?

在 Microsoft Visual Studio 2015 的 C++ 项目中包含 Armadillo C++ 库

手动将库添加到 Xcode 项目

手动调用 Visual Studio 的可视化工具

Visual Studio 2008 Windows 窗体设计器如何兼容 QVGA 和 VGA?

将现有 xaml 文件添加到 Visual Studio 2012