2

我下载了 pthread-w32-2-9-1-release.zip,解压缩并在 VisualStudio2013 中使用 Prebuild/include lib 和 dll。

我用 main.c 建立了一个 VC++ 空项目“helloc”,然后用 pthread_create pthread_join 函数编写了一个简单的例子。

这是我的配置:

Properties->C/C++->General->Additional Include Directories,添加“F:\pthread_win32\include”

属性->链接器->常规->附加库目录,添加“F:\pthread_win32\lib\x86”

Properties->Linker->Input->Additional Dependencies,添加“pthreadVC2.lib”

它已经成功构建,但是当我单击“本地 Windows 调试器”时,控制台会出现“helloc.exe 错误,因为找不到 pthreadVC2.dll”。

然后我将 pthreadVC2.dll 复制到 helloc/Debug/,与 helloc.exe 相同的目录,终于可以正常工作了。

但我不知道为什么 helloc.exe 都需要 pthreadVC2.lib 和 pthreadVC2.dll。在 VisualStudio 中必须同时使用 lib 和 dll 吗?

如果其中只有一个(pthreadVC2.lib pthreadVC2.dll)足以支持 helloc.exe,我如何指定要在 VisualStudio 中使用 helloc.exe 的哪一个(dll 或 lib)?

而且我不想将所有 pthread 库和 dll 放入“C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC”,我想知道如何手动配置。

4

1 回答 1

1

AFAICT,预建库只是 DLL 的导入库。(允许您链接到 DLL,因此是必需的)如果您想静态链接,您必须自己重建库。有关详细信息,请参阅 README 文件。

于 2015-10-13T13:59:58.490 回答