我正在使用Visual Studio2017。我想练习向现有解决方案添加静态库项目。层次结构如下所示:
解决方案:
控制台实践(C ++控制台项目)-(文件:main.cpp)
MathLib(静态库项目)-(文件:mathlib.h,mathlib.cpp)
两者都编译良好。
现在我需要他们互相交谈。
我希望“控制台实践”从“ MathLib”调用一个函数,例如add(n,n)。
我注意到仅通过调用函数就很难做到这一点。 “控制台实践”无法识别“ MathLib.h”。
我怎么称呼add(n,n)?
编辑:
我尝试通过链接中的此解决方案,将路径添加到lib,并添加了MathLib.lib作为对“ Console Project”的引用,但它无法识别我的#include“ mathlib.h”文件静态库项目。我必须复制此头文件,这是不可取的。我可以只访问标题,而不是将最新版本复制到我的“控制台实践”项目中吗?
Adding a static library to a project in the same solution (Visual Studio 2012)
答案 0 :(得分:1)
在解决方案资源管理器中,您的主项目应具有“引用”项。右键单击它并添加引用,然后检查静态库项目。请注意,这比使用Project,Properties,Linker添加其他库路径更好,因为它还会为项目设置正确的构建顺序。
要找到标题,可以从主项目中提供标题的相对路径:
#include "../staticlib/header.h"
或者在您的主项目上,转到“项目”,“属性”,“ C ++”,“其他包含目录”,然后将主项目中的相对路径添加到静态库头文件中,例如../staticlib
。
两个示例均基于如下文件结构:
MYPROJECT
│ MyProject.sln
│
├───MainExe
│ MainExe.vcxproj
│
└───StaticLib
Header.h
StaticLib.vcxproj