如何在同一解决方案中让静态库项目与我的主要C ++项目对话?

时间:2018-07-15 16:10:04

标签: visual-studio

我正在使用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)

1 个答案:

答案 0 :(得分:1)

在解决方案资源管理器中,您的主项目应具有“引用”项。右键单击它并添加引用,然后检查静态库项目。请注意,这比使用Project,Properties,Linker添加其他库路径更好,因为它还会为项目设置正确的构建顺序。

要找到标题,可以从主项目中提供标题的相对路径:

#include "../staticlib/header.h"

或者在您的主​​项目上,转到“项目”,“属性”,“ C ++”,“其他包含目录”,然后将主项目中的相对路径添加到静态库头文件中,例如../staticlib

两个示例均基于如下文件结构:

MYPROJECT
│   MyProject.sln
│
├───MainExe
│       MainExe.vcxproj
│
└───StaticLib
        Header.h
        StaticLib.vcxproj
相关问题