Visual c++ 并非同一解决方案下的所有项目都可以看到NuGet包 我有一个C++解决方案,它下面有两个项目。一个项目正在生成.lib库,另一个项目使用它并在Visual Studio 2019上生成.exe可执行文件。第一个项目使用pthread,它们的属性中都有pthread库的路径

Visual c++ 并非同一解决方案下的所有项目都可以看到NuGet包 我有一个C++解决方案,它下面有两个项目。一个项目正在生成.lib库,另一个项目使用它并在Visual Studio 2019上生成.exe可执行文件。第一个项目使用pthread,它们的属性中都有pthread库的路径,visual-c++,nuget,visual-studio-2019,Visual C++,Nuget,Visual Studio 2019,我想从一个外部pthread库转移到使用NuGet中的库。我从NuGet下载了pthread,并从两个项目的属性中删除了exteranl库的路径 因此,第一个项目编译没有问题,但第二个项目失败,原因是: 错误C1083无法打开包含文件:“pthread.h”:没有这样的文件或目录 此外,当打开两个项目的属性时,在第一个项目的属性中,我可以看到出现了“项目主设置”和“引用的包”类别,但它们不会出现在第二个项目中 如何使这两个项目都可以使用NuGet包 此外,在打开两个项目的属性时,在 在第一个项目

我想从一个外部pthread库转移到使用NuGet中的库。我从NuGet下载了pthread,并从两个项目的属性中删除了exteranl库的路径

因此,第一个项目编译没有问题,但第二个项目失败,原因是:

错误C1083无法打开包含文件:“pthread.h”:没有这样的文件或目录

此外,当打开两个项目的属性时,在第一个项目的属性中,我可以看到出现了“项目主设置”和“引用的包”类别,但它们不会出现在第二个项目中

如何使这两个项目都可以使用NuGet包

此外,在打开两个项目的属性时,在 在第一个项目中,我可以看到项目主设置和 已显示引用的包类别,但它们不显示在中 第二个项目

如何使这两个项目都可以使用NuGet包

问题是您没有同时将nuget包pthreads安装到第二个项目中。使用项目引用或其他任何C++,都不会将文件pTr.h复制到第二个项目。

我想你只需要安装一个名为lib library项目的nuget包,然后.exe项目引用lib项目。在这种情况下,pthread.h文件不会从第一个项目复制到第二个项目,这与.Net项目完全不同

实际上,您应该在每个使用它的项目中安装nuget包

解决方案

因此,要解决这个问题,您应该同时在第二个项目上安装pthreads nuget包。右键单击没有菜单Referenced Packages的项目->选择Manage NuGet Packages并搜索要安装的NuGet pthreads

此外,如果整个解决方案的项目都使用此nuget软件包,则可以右键单击解决方案->选择管理nuget软件包以获得解决方案

此外,当您生成项目并遇到此错误C2011“timespec”:“struct”类型重新定义时,可以在include的顶部添加以下代码:


希望它能对您有所帮助。

您好,您的两个项目的项目类型是什么?您是如何为这两个项目安装nuget软件包的?您是通过右键单击解决方案还是项目来安装nuget软件包的?它们似乎都有相同的nuget软件包管理器,这表明该软件包是为这两个项目安装的,我尝试从另一个项目卸载并安装它,但它不起作用。我放弃了,回到刚才的方法,只是有了图书馆并指向它。我想知道你的C++项目是什么类型,请与我分享。您可以按照我的步骤:创建一个新的C++静态库项目和一个C++控制台应用程序。其次,右键单击解决方案资源管理器中的每个项目,选择nuget package manager,在搜索框中输入pthreads,您最好选择最新版本2.9.1.4进行安装。之后,单击安装。要检查nuget是否安装在项目中,可以右键单击project->nuget Package Manager->Installed以检查其中是否存在pthreads。最后,可以为彼此添加任何项目引用。在我这边,没有这样的错误,当你安装软件包时,请先通过工具->选项->nuget软件包管理器->常规->清理所有nuget缓存来清理nuget缓存。并与我们共享项目类型信息,我们可以判断是否是特定项目类型不支持的问题或任何其他问题。
#define HAVE_STRUCT_TIMESPEC