visual studio 无法引用第三方库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了visual studio 无法引用第三方库?相关的知识,希望对你有一定的参考价值。

我的版本是visual studio 2022今天用它编译了一个第三方库dynet然后新建一个项目的时候发现无法引用 如图所示 右键引用-添加引用后选不了编译好的库在网上看别人的视频中 右键引用-添加引用后出现的界面是这样的:可以在浏览这个标签那里选择第三方库请问是哪里出了问题?

参考技术A static库有头文件xx.h以及xx.lib文件。

首先,需要能include该头文件,可以直接在你的代码中写全路径,但是一般的方法是在 “属性--c/c++--常规--附加包含目录”中写上xx.h所在的文件夹目录,然后,直接在你的代码中#include "xx.h"

其次,需要告诉链接器你要依赖xx.lib以及xx.lib所在的路径。

告诉链接器你要依赖xx.lib : “属性--链接器--输入--附加依赖项” 中填写xx.lib。也可以写全路径,这样的话,可以不用再单独设置xx.lib所在的文件夹目录了。

告诉链接器xx.lib所在的路径 : “属性--链接器--常规--附加库目录” 中填写xx.lib所在的文件夹路径。
————————————————。本回答被提问者采纳
参考技术B  visual studio无法导入识别python第三方库如requests库的问题解决办法. spaceforceone. 1.若未安装成功显示pip无效 在输入pip前加上pip.exe的路径。. 如果显示ssl unavailable,请参考有关openssl安装的文章。. 2.若已安装成功但module无法被导入识别. 参考微 参考技术C  visual studio无法导入识别python第三方库如requests库的问题解决办法. spaceforceone. 1.若未安装成功显示pip无效 在输入pip前加上pip.exe的路径。. 如果显示ssl unavailable,请参考有关openssl安装的文章。. 2.若已安装成功但module无法被导入识别. 参考微 参考技术D 你可以参考下我的食用方法:1. Armadillo库本身:这个还是要设置进VC++目录的,好几个版本前的VS开始,VC++目录应该就是跟项目走的,也就是改项目属性

从属项目在 Visual Studio 的引用中无法看到库中的标头

【中文标题】从属项目在 Visual Studio 的引用中无法看到库中的标头【英文标题】:Dependent project cannot see headers from a library in refferences in Visual Studio 【发布时间】:2021-04-19 10:56:42 【问题描述】:

我正在学习如何制作静态库。我从 windows 和 Visual Studio 开始。

目录结构如下:

 - MyLibraryProject
   - include
     - MyLibraryProject
       - MyLibraryHeader.h
   - src
     - MyLibrarySource.cpp
   - build
     - MyLibraryProject.vcxproj
 - MyDependentProject
   - main.cpp
   - MyDependentProject.vcxproj

MyLibraryProject.vcxproj 有以下设置:

Setting Value
Configuration type Static library (.lib)
Additional Include Directories $(MSBuildThisFileDirectory)../include/MyLibraryProject

MyDependentProject.vcxproj 没有特殊设置,除了我在引用中添加了MyLibraryProject,图像具有我使用的实际名称:

如果我在 main.cpp 中使用相对路径,我可以构建项目 - 静态链接可以正常运行:

#include "../MyLibraryProject/include/MyLibraryProject/MyLibraryHeader.h"

但是,我想包含这样的标题:

// fatal error C1083: Cannot open include file: 'MyLibraryProject/MyLibraryHeader.h': No such file or directory
#include <MyLibraryProject/MyLibraryHeader.h>

那是行不通的。我也尝试使用属性表,但也无法使用。我一直在搜索互联网,但通常发现声称如果添加引用,标头和静态库都可以工作。

这里是full repository,如果你愿意看一看。或者在 cmets 中询问是否缺少信息。

【问题讨论】:

@AndyG 已更新。尽管我找到的所有信息都表明它应该看到标题,但它看不到标题。此外,我的工作中使用了相同的方法,并且效果很好。我试图比较工作中的项目,但一无​​所获。 【参考方案1】:

项目引用不向依赖项目提供有关标头的任何信息。最灵活的方法(在 Visual Studio 中)是属性表。我创建了一个文件MyLibraryProject/build/MyLibraryProjectDependency.props

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup />
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>

我在 Visual Studio 的属性资源管理器中将其添加到 MyDependentProject.vcxproj。这解决了问题,现在可以在我想要的路径上看到标题。

【讨论】:

很高兴您得到了解决方案,感谢您的分享,如果您将它们标记为答案,我将不胜感激,这将对其他社区有益。 @Jeaninez-MSFT 仅供参考,在发布后 2 天内无法接受自我回答,这就是为什么您经常会遇到仍未接受的自我回答。

以上是关于visual studio 无法引用第三方库?的主要内容,如果未能解决你的问题,请参考以下文章

用CMake设置Visual Studio工程中第三方库

Visual Studio Makefile项目有几个输出

带有 Visual Studio 的第三方库

Visual Studio 2017 - 下载远程引用的 JavaScript 选项丢失

Intellisense 与 Visual Studio Code 中的第三方 JavaScript 库

如何让我的应用程序使用 Visual Studio 找到第三方 DLL?