【发布时间】:2011-08-04 23:23:00
【问题描述】:
为了清楚起见 - 我已经搜索了互联网的深度并返回有关如何执行此操作的信息
我正在寻求帮助来设置 pthread_Win32 以使用 Visual Studio 2005。我正在使用 C 进行编程,并且我有许多多线程分配要使用 pthread.h 编写。但是,由于 pthread 是 unix 原生的,所以我必须编写所有代码、ftp 它,然后通过 ssh 连接到我的班级的远程 unix 系统来运行它。它使开发需要更长的时间,而且效率非常低。我希望(最重要的是)能够在我的 win32 机器上运行它,这样我就可以在 Visual Studio 中进行开发,就像我已经做了很长一段时间一样。
我已将 pthread.lib 文件和 pthread.h 文件安装到所有其他文件所在的相应 lib/header 目录中。另一方面,DLL(实际库)我放在 c:\windows\system32 中。我尝试将 DLL 添加为依赖项(右键单击项目 -> 引用 -> 添加新引用),但正如其他人所说,我得到的只是一个空白对话框,没有添加任何 DLL 文件或任何东西的选项。好像能识别头文件,但是编译的时候出现这些错误:
1>正在链接...
1>main.obj:错误 LNK2019:未解析的外部符号 _imp_pthread_join 在函数 _main
中引用1>main.obj:错误 LNK2019:未解析的外部符号 _imp_pthread_create 在函数 _main
中引用1>main.obj:错误 LNK2019:未解析的外部符号 _imp_pthread_exit 在函数 _fcount 中引用
根据我的研究,我确定这是 DLL 的问题,并且我假设它无法找到我在代码中引用的函数的定义。我已经搜索了高低,我似乎无法找到解决这个问题的任何方法。我已将 lib/header 文件的目录添加到我的链接器中,以防万一,但这并没有解决问题。我需要在 Visual Studio 中做一些事情来指定我需要 pthreadVC2.dll 作为项目依赖项——目前这似乎是不可能的(而且非常令人沮丧)。
有什么智慧之言吗?
非常感谢
【问题讨论】:
-
通常 __imp_thread_join 的东西意味着它认为它是 C++ 但它是 C...也许可以尝试在包含周围添加一个 extern C { } 块。
标签: c windows winapi visual-studio-2005 pthreads