我尝试使用WxWidgets支持为Eclipse中的Microsoft Visual C ++编译器设置工作工具链。
到目前为止我所做的是:
使用VS2010的分布式Visual Studio .sln编译WxWidgets(我认为Eclipse使用相同的编译器等。)
确认Eclipse工具链正常工作(标准Hello World项目)
创建WxWidgets测试应用程序(Zetcode Tutorial)
使用适当的包含路径,库路径,预处理器宏(_WXDEBUG__)配置Eclipse工具链 WIN32 _视窗 wxUSE_GUI = 1 _UNICODE UNICODE _DEBUG _WIN32_WINNT = 0x0502 _WXMSW__ _WIN32)并根据调试或发布版本将代码生成设置为/ MT或/ MTd。
我指定了其他库(wxmsw30ud_core.lib wsock32.lib WINMM.LIB comctl32.lib rpcrt4.lib wxexpatd.lib wxjpegd.lib wxpngd.lib wxregexud.lib wxscintillad.lib wxtiffd.lib wxzlibd.lib Version.lib opengl32.lib glu32.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)根据this guide
现在我最终在msvcrtd.lib和msvcprtd.lib上遇到链接器错误(LNK2005)。
例如:
msvcprtd.lib(MSVCP100D.dll):错误LNK2005:" void __cdecl std :: _ Xlength_error(char const *)" (?_Xlength_error @std @@ YAXPBD @ Z)在libcpmtd.lib(xthrow.obj)definiert中是有害的。
我知道"将代码生成设置更改为/ MTd"修复,但我已经使用了该设置,并检查了WxWidgets构建配置以指定静态库,unicode构建。
所以有人知道链接器为什么会出现这个错误吗?
非常感谢提前。
答案 0 :(得分:1)
RUNTIME_LIBS=static
就足够了。