【发布时间】:2016-01-25 21:06:02
【问题描述】:
继续我的移植项目...尝试使用 Visual Studio 2013 Pro 让 Linux C++ 应用程序在 Windows 上运行。
这是一个多线程应用程序,因此我将pthread-win32 加入其中。它也使用 MySQL,所以我也安装了二进制 32 位 MySQL C Connector library。
在 VS 尝试链接之前一切都很好。然后我得到这个:
pthreadVSE2.lib(pthreadVSE2.dll) : error LNK2005: _pthread_exit already defined in mysqlclient.lib(my_winthread.obj)
pthreadVSE2.lib(pthreadVSE2.dll) : error LNK2005: _pthread_join already defined in mysqlclient.lib(my_winthread.obj)
pthreadVSE2.lib(pthreadVSE2.dll) : error LNK2005: _pthread_create already defined in mysqlclient.lib(my_winthread.obj)
事实证明,MySQL 开发人员遇到了同样的问题(Windows 上缺少 pthread),因此他们将部分 pthread 库滚动到他们的库中(或者使用相同的函数名称/签名滚动他们自己的 - 我没有看起来那么近)。
但这只是其中的一部分——我尝试从链接中删除 pthread-win32,认为可能 mysqlclient 库中嵌入了所有 pthreads——但这会产生许多未解析的符号。
关于如何解决此问题的任何建议?完整的 windows 开发新手在这里,所以没有建议是愚蠢的!
谢谢
【问题讨论】:
标签: c++ mysql windows visual-studio pthreads