【问题标题】:How to add pthread library to C++ project in Visual Studio Community Edition?如何在 Visual Studio 社区版中将 pthread 库添加到 C++ 项目?
【发布时间】:2015-03-10 23:05:32
【问题描述】:

我希望能够在 Visual Studio 中使用 pthread,因为我正在使用它进行调试,并且正在按照此处的教程进行操作。

http://web.cs.du.edu/~sturtevant/pthread.html

看起来很简单,将.h文件添加到C++的include目录,将.lib文件添加到lib目录。

但是,当 .h 文件被检测到时,我收到了一个错误:

Error   1   error LNK2019: unresolved external symbol __imp__pthread_create 

我认为这意味着 .lib 文件没有被正确检测到。

我想我可以将 .lib 文件添加到 lib 列表中 项目属性 -> 链接器 -> 附加依赖项 像这样使用它的完整路径:

D:\Visual Studio\VC\lib\pthreadVC2.lib;kernel32.lib;user32.lib;

不确定将新库附加到列表的开头或列表的末尾是否有任何好处,但似乎都不起作用。

在命令行选项卡中,我们可以看到实际运行的命令(我认为):

/OUT:"C:\projects\GTKWavePipe\NamedPipeTest\Debug\NamedPipeTest.exe" /MANIFEST /NXCOMPAT /PDB:"C:\projects\GTKWavePipe\NamedPipeTest\Debug\NamedPipeTest.pdb" /DYNAMICBASE "D:\Visual Studio\VC\lib\pthreadVC2.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /INCREMENTAL /PGD:"C:\projects\GTKWavePipe\NamedPipeTest\Debug\NamedPipeTest.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\NamedPipeTest.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1 

有谁知道我可能做错了什么?最终,我总是可以在我的 cygwin 环境中进行调试,但我在那里使用的调试器并没有那么好。

另外,我认为能够将库添加到 Visual Studio 中似乎是一项有用的技能。

【问题讨论】:

    标签: c++ visual-studio libraries


    【解决方案1】:

    您是否忘记将 .dll 文件添加到 bin 文件夹中?

    如果您完全按照他的教程进行操作,则无需在 Additional Dependencies 中添加任何 .lib 文件(请注意他教程中的步骤 6-10)。我按照他的教程进行操作。我正在使用 Visual Studio 12.0 Ultimate,但它应该与您的 Visual Studio 版本相同或非常相似。

    我实际上在这里遵循了他的教程:http://web.cs.du.edu/~sturtevant/w13-sys/InstallingpthreadsforVisualStudio.pdf 他为您提供了一个压缩文件夹,其中包含您需要的文件。我从那里得到了文件。

    这是他的教程:

    将 3 个 .h 文件(pthread.h、sched.h、sempahore.h)添加到 \VC 下的包含文件夹(我的是 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC)。 将 pthreadVC2.lib 添加到 lib 文件夹,将 pthreadVC2.dll 文件添加到 bin 文件夹。

    接下来,打开属性管理器:在 Visual Studio 中,转到查看>其他 Windows>属性管理器。展开调试文件夹。打开 Microsoft.Cpp.Win32.user(或类似名称的属性表)。转到通用属性>链接器>输入。在 Additional Dependencies 中添加 pthreadVC2.lib 作为依赖项。

    【讨论】:

    • 对于使用社区版的人,我在这里找到了我的路径:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib[x86或 x64] 检查您的配置以查看要将 .lib 放在哪个文件夹中。至于 .dll,您可以将其放在 %PATH% (环境变量)中的文件夹中
    【解决方案2】:

    我猜你的问题和我的差不多。

    虽然你使用的是windows 64bit,不要复制64bit的dll和lib文件。 改为选择 86

    我的就是这样工作的。

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2023-03-18
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多