【问题标题】:VS2017 Nuget pthread LNK1120 unresolvedVS2017 Nuget pthread LNK1120 未解决
【发布时间】:2020-04-01 07:35:49
【问题描述】:

听说 Nuget 构建项目更容易,无需任何配置。

所以,我正在尝试从 Nuget 在我的项目中添加 pthreads

(其实我用的是windows 10 x64 Visual studio 2017,C语言,朋友用的是linux OS)

我只是在 Nuget 包中搜索 pthreads,点击“安装”按钮

但是,我的项目编译良好,但调用了 fatal error LNK1120

从nuget安装pthreads后还有什么配置吗?

【问题讨论】:

  • Set Build log to detail by Tools-->Options-->Projects and Solutions-->Build and Run-->将MSBuild project build output verbosity设置为detailed,然后分享详细的错误日志我们。另外,您的项目类型是什么,是控制台还是窗口项目?或者提供一个最小的、可重现的示例,以便我们更好地解决您的问题。
  • @hellogod 我不会用英文,所以,有错误main.obj : error LNK2019: __imp__pthread_createmain.obj : error LNK2019: __imp__pthread_joinfatal error LNK1120:
  • 你能告诉我们你的项目类型是什么,或者它是在VS2017中创建的吗?
  • VS2017,新项目 - ConsoleApplication。我没有手动配置其他任何东西。 (因为我通常在另一个 IDE 中编写另一种语言)

标签: c visual-studio-2017 nuget pthreads lnk2019


【解决方案1】:

从nuget安装pthreads后还有什么配置吗?

使用Nuget格式将pthread安装到C++项目中非常简单,不再需要手动配置include Directoriesadditional Dependencies地址。

但是VS中的pthread nuget package有个缺点,就是没有完全继承pthread类库。它丢失了一个名为pthreadvc2.lib 的文件。您可以尝试我的以下建议在project properties 中不进行任何设置来配置它。

解决方案

1)this link下载pthread-w32-2-9-1-release.zip

2)解压此文件,然后将pthreadVC2.lib从文件(pthreads-w32-2-9-1-release\Pre-built.2\lib\x86 or x64)复制到

C:\Program Files (x86)\Microsoft Visual Studio\2017\xxxxx\VC\Tools\MSVC\xxxx.xx.xxxx\lib\x86 or x64.

注意,您应该将相关库复制到相关文件夹,x86 pthreadVC2.lib 复制到x86 文件夹,x64 pthreadVC2.lib 复制到x64 文件夹。

3) 然后将其添加到您的 cpp 文件中:

#pragma comment(lib,"pthreadVC2.lib")

然后它将按预期工作而不会出现任何错误。

【讨论】:

  • 你太棒了!!我在任何文档中都找不到此解决方案。你怎么知道的?
  • 感谢您的反馈,只是一些测试证实了这一点 :) Besdies,如果您以后对 nuget 有任何其他问题,请随时告诉我们。无论如何,祝你有美好的一天!
  • 压缩文件的链接已失效。我用一个工作的替换它。答案也解决了我的问题。谢谢!
猜你喜欢
  • 2014-05-10
  • 2017-09-25
  • 2014-05-07
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 2012-06-03
  • 2012-07-20
  • 2020-01-24
相关资源
最近更新 更多