如何在 Visual Studio 社区版中将 pthread 库添加到 C++ 项目?
How to add pthread library to C++ project in Visual Studio Community Edition?
我希望能够在 visual studio 中使用 pthreads,因为我正在使用它进行调试,并且正在按照此处的教程进行操作。
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 中似乎是一项有用的技能。
您是否忘记将 .dll 文件添加到 bin 文件夹中?
如果您完全按照他的教程进行操作,则无需在附加依赖项中添加任何 .lib 文件(请注意他的教程中的步骤 6-10)。我按照他的教程进行操作并开始工作。我正在使用 Visual Studio 12.0 Ultimate,但它应该与您的 Visual Studio.
版本相同或非常相似的过程
我实际上是按照他的教程来的:http://web.cs.du.edu/~sturtevant/w13-sys/InstallingpthreadsforVisualStudio.pdf
他在其中为您提供了一个压缩文件夹,其中包含您需要的文件。我从那里得到了文件。
又是他的教程:
Add the 3 .h files (pthread.h, sched.h, sempahore.h) to the include folder under \VC (mine is C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC).
Add the pthreadVC2.lib to the lib folder and pthreadVC2.dll file to the bin folder.
Next, open the property manager: in Visual Studio, go to View>Other Windows>Property Manager. Expand the Debug folder. Open Microsoft.Cpp.Win32.user (or a similarly named Property Sheet). Go to Common Properties>Linker>Input. In Additional Dependencies add pthreadVC2.lib as a dependency.
我想你的问题和我的差不多。
尽管您使用的是windows 64 位,不要复制64 位 的dll 和lib 文件。
改为选择 86。
我的就是这样。
我希望能够在 visual studio 中使用 pthreads,因为我正在使用它进行调试,并且正在按照此处的教程进行操作。
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 中似乎是一项有用的技能。
您是否忘记将 .dll 文件添加到 bin 文件夹中?
如果您完全按照他的教程进行操作,则无需在附加依赖项中添加任何 .lib 文件(请注意他的教程中的步骤 6-10)。我按照他的教程进行操作并开始工作。我正在使用 Visual Studio 12.0 Ultimate,但它应该与您的 Visual Studio.
版本相同或非常相似的过程我实际上是按照他的教程来的:http://web.cs.du.edu/~sturtevant/w13-sys/InstallingpthreadsforVisualStudio.pdf 他在其中为您提供了一个压缩文件夹,其中包含您需要的文件。我从那里得到了文件。
又是他的教程:
Add the 3 .h files (pthread.h, sched.h, sempahore.h) to the include folder under \VC (mine is C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC). Add the pthreadVC2.lib to the lib folder and pthreadVC2.dll file to the bin folder.
Next, open the property manager: in Visual Studio, go to View>Other Windows>Property Manager. Expand the Debug folder. Open Microsoft.Cpp.Win32.user (or a similarly named Property Sheet). Go to Common Properties>Linker>Input. In Additional Dependencies add pthreadVC2.lib as a dependency.
我想你的问题和我的差不多。
尽管您使用的是windows 64 位,不要复制64 位 的dll 和lib 文件。 改为选择 86。
我的就是这样。