好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

javac++mysql网络问题一堆

warning LNK4098: defaultlib LIBCMT conflicts with use of other libs; use / NODEFAULTLIB:library 在同一个项目中,所有的源文件必须链接相同的 C 运行时库。如果某一文件用了 Multithreaded DLL 版本,而其他文件用了 Single-Threaded 或者 Multithread

warning LNK4098: defaultlib " LIBCMT" conflicts with use of other libs; use / NODEFAULTLIB:library

在同一个项目中,所有的源文件必须链接相同的 C 运行时库。如果某一文件用了 Multithreaded DLL 版本,而其他文件用了 Single-Threaded 或者 Multithreaded 版本的库,也就是说用了不同的库,就会导致这个警告的出现。

原因找到了。那么解决方法,总之就是将两个项目的运行时库统一。

简单的方式就是将项目的动态库修改为使用 Multithreaded DLL 版本的 C 运行时库即可。

某些情况下你的项目可能不能改变当前的运行时库, VC 中的 C 运行时库一共有 6 种,想了解更多信息可以参阅我先前翻译的文章。

Single-threaded (libc.lib) libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

Multithreaded (libcmt.lib) libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

Multithreaded using DLL (msvcrt.lib) libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

Debug Single-threaded (libcd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib

Debug Multithreaded (libcmtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib

Debug Multithreaded using DLL (msvcrtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib

例如编译 Release 版本的单线程的工程,在 linker 的命令行加入如下的参数:

/ NODEFAULTLIB: libcmt.lib / NODEFAULTLIB: msvcrt.lib / NODEFAULTLIB: libcd.lib / NODEFAULTLIB: libcmtd.lib / NODEFAULTLIB: msvcrtd.lib

由于这个项目是添加 htmlhelp.lib 后而得到的 warning ,所以应该做如下更改,选择 Project -> Setting ,出现 Project Setting 对话框,单击 Link Project Options 中添加如下即可。

/NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib   /NODEFAULTLIB:libcmtd.lib


jsp 拦截器写法,最大的问题是把注入搞没了,我勒个去,暂时无解









查看更多关于javac++mysql网络问题一堆的详细内容...

  阅读:43次