如何在Visual Studio中添加C++项目引用?

17

在C#中,添加引用项目来构建依赖关系并将结果程序集放置在原始Debug目录中,以及与该程序集正确编译非常简单。

因此,目前我有一个包含Main()和静态库项目的解决方案。但是,当我编译Main()项目并查看bin/Debug/目录时,我没有找到Static.lib文件或.obj文件,我认为这些文件需要在那里,或者说还有其他问题...我正在遇到链接错误。

我认为可能需要配置项目以查找静态库项目生成的.obj和.lib文件(它们可以正常编译并生成这些文件)。

我有些事情不明白,对于Visual Studio和C++我了解得不是很深入。

如何在Main项目中添加引用以使用静态库项目生成的库?

5个回答

7
你需要理解的第一件事是,静态库与.NET程序集完全不同。它们被链接到.exe文件中,不作为单独的实体进行分发。
你的链接错误很可能是由于未链接到库所致。
有几种定义必须链接的库的方法。 一种是在项目设置中,在“链接器-〉输入-〉附加依赖项”下, 另一种则是通过#pragma comment(lib, "path to library")这种简单的方式。

4

您可以通过进入项目属性->链接器->输入->附加依赖项,添加所需的 .lib 文件名称。

然后,您需要在 VC++ 目录->库目录中指定您的库所在的文件夹。


3

0

0
在.NET中,其中一个设计目标是使这个过程更加容易和自动化。任务已经完成了。
在本地C++世界中,这个过程要手动得多。以下大致是我将不同模块连接起来的过程。
  • 在解决方案中包含所有相关模块。
  • 将每个项目的输出目录设置为相同的目录。右键单击每个项目,选择属性,在常规选项卡中将输出目录设置为:$(SolutionDir)\Bin\$(Configuration)\$(PlatformTarget)。为了减少麻烦,请为所有配置和平台设置此选项。然后所有文件都会被放置在类似于\your-solution\bin\Debug\x64的地方。
  • 设置项目依赖项-右键单击将链接到另一个项目的每个项目->选择生成依赖项并选择引用的项目。
  • 通过右键单击调用项目并选择属性来设置链接过程。转到链接器 -> 输入并添加:$(SolutionDir)\Bin\$(Configuration)\$(PlatformTarget)\MyLibrary.lib
  • 对于实际要链接到的函数,我将函数声明设置为以下内容(函数声明有很多变化,这里不是重点):

#define DllExport __declspec( dllexport )

extern "C" void DllExport WINAPI` Testing();

  • 在调用函数的实际cpp文件中,我添加了以下内容:

    #include "..\MyLibrary\mylibrary.h"

  • 然后在实际调用函数中,只需添加被调用的函数:

    Testing();


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接