Visual Studio C++:在另一个项目中使用一个项目生成的静态库
Posted
技术标签:
【中文标题】Visual Studio C++:在另一个项目中使用一个项目生成的静态库【英文标题】:Visual Studio C++: Using static libraries produced by one project in another project 【发布时间】:2021-09-10 18:57:03 【问题描述】:我对使用/链接库几乎一无所知,所以请耐心等待。到目前为止,我缺乏经验使互联网研究毫无结果。
我有一个包含三个项目的解决方案:
plus,包含plus.h和plus.cpp,编译成.lib times,包含times.h和times.cpp,编译成.lib main,需要用到plus和times编译的库。plus 和 times 项目的头文件/源文件中包含您所期望的内容 - 函数的前向声明和定义 plus和 minus 将两个整数相加/相乘。
我想在我的 main 项目中使用函数 plus 和 times。我怎样才能做到这一点?我想就是说,如何让我的main项目使用plus和times项目编译的库?
【问题讨论】:
您可能需要为主项目中的两个库添加包含路径(为您将使用的所有配置设置附加包含目录设置),并链接到两个库(设置链接器 -> 输入-> 每个配置的附加依赖项设置)。 提示:#pragma comment
,在 main 中添加 #pragma comment( lib, "path to times.lib" )
和 #pragma comment( lib, "path to plus.lib" )
并包含它们的标题,您可以直接使用函数
为此,您可能需要为发布和调试指定不同的路径。
在 VS2019 中,右键单击解决方案资源管理器窗口中的主项目 > 添加 > 引用并勾选加号和时间项目的复选框。
【参考方案1】:
在您的主项目中添加加号和时间作为参考:
Right click on main project -> Add -> Reference... -> tick the plus and times projects
在你的主项目的附加包含目录中指定plus和times头文件的路径:
Right click on main project -> Properties -> C/C++ -> General -> Additional Include Directories
另请阅读:
切尔诺:Using Libraries in C++ (Static Linking) 微软:Walkthrough: Create and use a static library 堆栈溢出:How static libraries work?【讨论】:
以上是关于Visual Studio C++:在另一个项目中使用一个项目生成的静态库的主要内容,如果未能解决你的问题,请参考以下文章
(隐藏?)影响 C/C++ 编译的 MS Visual Studio 设置
在另一个项目 Visual Studio 中使用来自一个项目的目标文件
C++ Visual Studio 2010 C4717 编译器在代码的一部分中发出警告,但在另一部分中没有
将 .lib 库链接到 Visual Studio 中的项目