如何手动将库添加到 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
将打开该部分,在该部分下您会找到链接器General
和Input
部分。
如果这还不清楚,请告诉我,我会尽力澄清。
【讨论】:
好的,感谢您的建议。我会试一试,然后在这里报告。 那么,我是否将 .lib 文件放在 \library 子文件夹中? .h 和 .dll 文件放在 \include 文件夹中吗?显然我错过了一些东西。也许没关系。 好吧,我放弃了 C# 项目。我创建了一个 C++ 控制台应用程序,并且能够将 .h 文件添加到“头文件”下的项目中。从未在任何地方找到“常规”选项卡,因此无法找到“其他库目录”的条目。叹。不过感谢您的建议。 好吧..这是很好的澄清。现在我的油箱里有更多的气体。我会试一试并报告。 在项目属性的链接器部分,也在其常规选项卡上,有一个对应的附加库目录条目。此部分在 VS 2017 15.9.14 中不存在.过去几天我一直在尝试链接 .lib 文件,为什么这么难?这太荒谬了。以上是关于如何手动将库添加到 Visual Studio 2017 项目?的主要内容,如果未能解决你的问题,请参考以下文章
在 Microsoft Visual Studio 2015 的 C++ 项目中包含 Armadillo C++ 库