链接错误-库冲突(libcmt.lib和libcmtd.lib)

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

 

 

 

总之,一句话,lib之间有冲突。需要删除导入的一些libs。 

 

   版 本 类 型 使用的library 被忽略的library
R  Release 单线程 libc.lib libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
多线程 libcmt.lib libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
使用DLL的多线程 msvcrt.lib libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
D   Debug 单线程 libcd.lib libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib
多线程 libcmtd.lib libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib
使用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

解决办法:
在CUDA编译选项里加入/MTd 或  /MT

Project Settings:  

在有"LIBCMT"冲突错误存在,在“配置属性-->链接器-->输入-->忽略特定库”中把libcmt.lib添加进去或者在“配置属性-->链接器-->命令运”的“附加选项”添加上/NODEFAULTLIB:libcmt.lib
libcmtd 这个库有时候不能忽略,忽略后会有不能解析的外部符号错误
其实有个方便的方法 链接时加入参数 /FORCE:MULTIPLE

from:http://blog.csdn.net/redline2005/article/details/6313703

时间: 2024-10-12 04:59:06

链接错误-库冲突(libcmt.lib和libcmtd.lib)的相关文章

c++-C++ 链接错误 fatal error LNK1104: 无法打开文件“mapnik.lib”

问题描述 C++ 链接错误 fatal error LNK1104: 无法打开文件"mapnik.lib" 我在mapnik项目中Debug模式下编译成功.lib文件,然后再另一个Debug项目中链接mapnik.lib,就出现了LNK1104, 而在Release状态下是成功的,(debug下的mapnik.lib文件有3个多G),试了半天了,还是一头雾水 解决方案 错误分析:LNK 1104是链接的错误,在链接一些lib或者exe文件时,如果链接路径错误或者无法打开其文件时,就会出

动态链接库dll,静态链接库lib, 导入库lib

转载地址:http://www.cnblogs.com/chio/archive/2008/08/05/1261296.html   目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称"静态库"),另一种为动态连接库(DLL,以下简称"动态库")的导入库(Import Libary,以下简称"导入库"). 静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一

mac os x-关于 Mac OS X 下使用 OpenGL 库 SOIL 时候出现的链接错误

问题描述 关于 Mac OS X 下使用 OpenGL 库 SOIL 时候出现的链接错误 我刚开始学习 OpenGL,想请教一下大家关于使用 SOIL 加载图片的问题,我在 Mac 上按要求下载并 make.make install 了 SOIL,但是使用的时候还是报了 g++ create_window.cpp -I/usr/local/include -I/opt/X11/include -L/usr/local/lib -I/opt/X11/lib -w -framework OpenGL

...already defined in libcmtd.lib错误的处理

今天自己编译的lua.lib文件放入原来的服务端工程中,在链接阶段出现大量错误, 提示:...already defined in libcmtd.lib. 经过查询,发现网上提供的几个方案都不适合. 例如:Linker--Ignore Specific Library中已经填写了libcimtd.lib了. 解决过程及方案: 原工程:C/C++ -- Code Generation -- Runtime Library:/MTD lua工程:C/C++ -- Code Generation -

c++调用c库函数-c++调用c的静态库链接错误。使用extern "C"无法解决!

问题描述 c++调用c的静态库链接错误.使用extern "C"无法解决! c++中调用一个c的第三方音频处理库.在c++类成员函数中调用c的函数.库的头文件并未考虑和c++兼容的问题.我在c++头文件内使用extern "C"{} ,大括号内不管是包含c的头文件,还是声明c的函数,都无法解决问题.百度谷歌都是这个办法,请大家帮帮忙.环境: mac os xcode 解决方案 不仅"声明c的函数"要用 extern "C"{}

linux 链接动态库时产生如下错误

问题描述 linux 链接动态库时产生如下错误 g++ ADS_APIServer.o ../../udt/src/libudt.so ../Commlib/libCommlib.so libADS_APIServer.so -o ADS_APIServer ADS_APIServer.o: In function soapOpenThread(void*)': ADS_APIServer.cpp:(.text+0x8b0): undefined reference topthread_crea

Duplicate Symbol链接错误的原因总结和解决方法[转]

from:http://www.cocoachina.com/bbs/read.php?tid=177492 duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在.但是经过一段时间的总结,发现这种错误总是有一些规律可以找的. 例如,我们有如下的最简单的两个类代码: //  ClassA.h #import <Foundation/Foundation.h> @interface ClassA : NSObject @end //  ClassA.m #

链接错误-C++ berkeley db安装后编译链接的奇怪错误。

问题描述 C++ berkeley db安装后编译链接的奇怪错误. 我在centos6.5上安装了berkeley db 6.1.6,是下源代码在本系统上重新编译安装的. 库如下: ll -rt /usr/local/lib -rwxr-xr-x 1 root root 2141065 11月 14 19:46 libdb-6.1.so -rw-r--r-- 1 root root 929 11月 14 19:46 libdb-6.1.la -rw-r--r-- 1 root root 3250

动态链接导入库与静态链接库

目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称"静态库"),另一种为动态连接库(DLL,以下简称"动态库")的导入库(Import Libary,以下简称"导入库"). 静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起.比如你链接一个静态库,如果其中有错,它会准确的找到是哪个obj有错,即静态lib只是壳子. 动态库一般会有对应的导入库,方便程序静