Visual studio Visual Studio 2019静态库项目的问题 我试图构建一个由C++控制台应用程序和C++静态库组成的项目。我只是为两者创建了一个默认项目。VisualStudio创建一个默认的示例函数。我还将该函数包含在头文件中,以便将其导出。然后,我从控制台项目添加对库项目的引用。然后我尝试构建这个项目,但它失败了,因为它说库中有一个未定义的函数引用。但是,如果我在控制台项目中包含生成的.lib文件,它就会工作。我已经在VisualStudio中使用了数千次静态库,但不知道现在发生了什么

Visual studio Visual Studio 2019静态库项目的问题 我试图构建一个由C++控制台应用程序和C++静态库组成的项目。我只是为两者创建了一个默认项目。VisualStudio创建一个默认的示例函数。我还将该函数包含在头文件中,以便将其导出。然后,我从控制台项目添加对库项目的引用。然后我尝试构建这个项目,但它失败了,因为它说库中有一个未定义的函数引用。但是,如果我在控制台项目中包含生成的.lib文件,它就会工作。我已经在VisualStudio中使用了数千次静态库,但不知道现在发生了什么,visual-studio,visual-c++,Visual Studio,Visual C++,我正在使用Visual Studio社区: Microsoft Visual Studio社区2019 版本16.1.3 VisualStudio.16.Release/16.1.3+29009.5 Microsoft.NET框架 版本4.7.03190 安装版本:社区 Visual C++ 2019 0435-6000—00000—AA098 微软Visual C++ 2019版/P> Visual Studio应用程序洞察工具包9.1.00429.1 Visual Studio应用程序洞察

我正在使用Visual Studio社区:

Microsoft Visual Studio社区2019 版本16.1.3 VisualStudio.16.Release/16.1.3+29009.5 Microsoft.NET框架 版本4.7.03190

安装版本:社区

Visual C++ 2019 0435-6000—00000—AA098 微软Visual C++ 2019版/P> Visual Studio应用程序洞察工具包9.1.00429.1 Visual Studio应用程序洞察工具

ASP.NET和Web工具2019 16.1.429.50124 ASP.NET和Web工具2019

Azure应用程序服务工具v3.0.0 16.1.429.50124 Azure应用程序服务工具v3.0.0

C#工具3.1.1-beta4-19281-06+58a4b1e79aea28115e66b06f850c83a3f1fcb6d3 IDE中使用的C#组件。根据您的项目类型和设置,可能会使用不同版本的编译器

常用Azure工具1.10 提供供Azure移动服务和Microsoft Azure工具使用的通用服务

Cookiecutter 16.1.19129.1 提供用于查找、实例化和自定义cookiecutter格式模板的工具

Microsoft Azure工具2.9 用于Microsoft Visual Studio的Microsoft Azure工具0x10-v2.9.20419.2

Microsoft JVM调试器1.0 提供对将Visual Studio调试器连接到与JDWP兼容的Java虚拟机的支持

基于Microsoft MI的调试器1.0 提供对将Visual Studio连接到MI兼容调试器的支持

微软Visual C++向导1 微软Visual C++向导 Microsoft Visual Studio VC软件包1.0 Microsoft Visual Studio VC软件包

NuGet软件包管理器5.1.0 Visual Studio中的NuGet包管理器。有关NuGet的更多信息,请访问

ProjectServicesPackage扩展1.0 ProjectServicesPackage Visual Studio扩展详细信息

Python 16.1.19129.1 为Python开发人员提供IntelliSense、项目、模板、调试、交互式窗口和其他支持

Python-Conda支持16.1.19129.1 康达对Python项目的支持

Python-Django支持16.1.19129.1 为Django web框架提供模板和集成

Python-IronPython支持16.1.19129.1 为基于IronPython的项目提供模板和集成

Python-评测支持16.1.19129.1 对Python项目的评测支持

Python-VC项目支持16.1.19129.1 为启用Python调试启用C++项目提供支持。 ResourcePackage扩展1.0 ResourcePackage Visual Studio扩展详细信息

增压测试适配器。测试1.0 使用为Boost.Test编写的单元测试启用Visual Studio的测试工具。扩展安装目录中提供了使用条款和第三方通知

Google测试1.0的测试适配器 使用为Google Test编写的单元测试启用Visual Studio的测试工具。扩展安装目录中提供了使用条款和第三方通知

TypeScript工具16.0.10506.2004 用于Microsoft Visual Studio的TypeScript工具

Visual Basic工具3.1.1-beta4-19281-06+58a4b1e79aea28115e66b06f850c83a3f1fcb6d3 IDE中使用的Visual Basic组件。根据您的项目类型和设置,可能会使用不同版本的编译器

用于CMake 1.0的Visual Studio工具 用于CMake的Visual Studio工具

用于CMake 1.0的Visual Studio工具 用于CMake的Visual Studio工具

控制台应用程序 库代码
1> ConsoleApplication1.obj:错误LNK2019:在函数_main中引用的未解析外部符号“void”\u cdecl fnStaticLibTest(void)”(?fnStaticLibTest@@YAXXZ)发现问题。我在控制台项目上单击右键添加引用,然后单击“构建依赖项”->“项目依赖项”。这不起作用,但如果我右键单击引用添加它,然后“添加引用”

在“我添加引用”步骤中出现问题,它就会起作用。就像忘记迈出这一步。显式添加.lib是一个很好的解决方法。
#include <iostream>
#include "StaticLibTest\\framework.h"

int main()
{
    std::cout << "Hello World!\n";
    fnStaticLibTest();
}
#pragma once

#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers

void fnStaticLibTest();
#include "pch.h"
#include "framework.h"

// TODO: This is an example of a library function
void  fnStaticLibTest()
{
}