VS链接过程中与MSVCRT.lib冲突

vs代码生成有/MT,/MTd,/Md,/MDd四个编译选项,分别代表多线程、多线程调试、多线程DLL、多线程调试DLL。

编译时引用的lib分别为libcmt.li、libcmtd.lib、msvcrt.lib、msvcrtd.lib。

当你使用外部的库时,你引用的库用的编译选项和你当前项目用到的编译想象不同,因此分别用了相类似功能的不同lib,这些lib因为功能相似。

所以符号也有很多重复,因此就发生了以上现象。

解决方案:(任选一种)

   1. 最简单的,更改你的项目设置:菜单--项目--属性--配置属性--c/c++--代码生成--运行时库,这里有四个选项,多试几遍改到不会报错为止

2.同样的原理,重新编译你引用的库,将编译开关改为和你的项目一致

但是有的时候你可能没发更改项目或库的编译开关。

3.vs给你的建议,忽略掉其中一个冲突的库:菜单--项目--属性--配置属性--链接器--输入--忽略特定库,这里填入vs提示给你的命令:/NODEFAULTLIB:后面填库的名字,也就是两个冲突的库的其中一个。

时间: 2024-11-17 06:34:13

VS链接过程中与MSVCRT.lib冲突的相关文章

嵌入式C语言自我修养 09:链接过程中的强符号和弱符号

9.1 属性声明:weak GNU C 通过 attribute 声明weak属性,可以将一个强符号转换为弱符号. 使用方法如下. void __attribute__((weak)) func(void); int num __attribte__((weak); 编译器在编译源程序时,无论你是变量名.函数名,在它眼里,都是一个符号而已,用来表征一个地址.编译器会将这些符号集中,存放到一个叫符号表的 section 中. 在一个软件工程项目中,可能有多个源文件,由不同工程师开发.有时候可能会遇

程序的编译链接过程

还是从HelloWorld开始说吧... #include <stdio.h> int main(int argc, char* argv[]) { printf("Hello World!\n"); return 0; } 从源文件Hello.cpp编译链接成Hello.exe,需要经历如下步骤: 可使用以下命令,直接从源文件生成可执行文件 linux: gcc -lstdc++ Hello.cpp -o Hello.out // 要带上lstdc参数,否则会报undef

不容忽视的警告:默认库msvcrt.lib与其他库的使用冲突,请使用/NODEFAULTLIB:library

用Visual Studio编译C++项目的时候可能会遇到这个警告:默认库msvcrt.lib与其他库的使用冲突,请使用/NODEFAULTLIB:library. 不要因为是警告就可以不管了,这个问题不解决会给你带来无穷无尽的痛苦. 之所以VS会爆出警告,是因为VS在编译链接的时候发现既链接了msvcrtd.lib又要去链接msvcrt.lib.这种情况往往是因为你引用了地方三库.VS抱怨了而你没有关心,程序虽然编完了,但是一运行就出错,这时再去解决问题就麻烦了,你甚至不知道错在哪里. 还是老

经测试稳定可用的蓝牙链接通信Demo,记录过程中遇到的问题的思考和解决办法,并整理后给出一个Utils类可以简单调用来实现蓝牙功能

说明:这是本人在蓝牙开发过程中遇到过的问题记录和分析,以及解决办法. 在研究过程中,许多的前人给出的解决方案和思路指导对我相当有帮助,但并非都是可采取的解决方法, 经过本人对这些方法的测试和使用过后,给出自己的理解和解决方案,不一定是正确的,但这些方法的确可以解决问题. 如果有人遇到同样的问题,并且看到我的文章解决,那是我的荣幸. !!!!!!但特别需要说明的是,看的越多,不明白的越多,我的看法可能是完全错误的,这些方法只是暂时解决了我的问题, !!!!!!如果有人发现了我的错误,请私信或评论告

sqlserver2008链接服务器中执行存储过程配置过程

参考:http://www.cnblogs.com/ycsfwhh/archive/2010/12/15/1906507.html 1.双方启动MSDTC服务MSDTC(分布式交易协调器),协调跨多个数据库.消息队列.文件系统等资源管理器的事务.该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server.该服务用于管理多个服务器 .位置:控制面板--管理工具--服务--Distributed Transa

VS2010 中 error 2732: 链接规范与的早期规范冲突

error 2732: 链接规范与的早期规范冲突 : 方法一解决方法是:全部用C++的函数替代含有.h的函数(头文件除外) 方法二: #ifdef __cplusplus extern "C"{ #endif 自己写的函数声明 } 推荐方法2..一句话兼容C和C++语言,因为C和C++同一个函数名在编译后保存在内存中的函数名很有可能不同...

链接与加载过程中,几个关键的概念

http://www.cnblogs.com/qiaoconglovelife/p/5870000.html 加载(load) 将程序拷贝到存储器并运行的过程,由加载器(loader)执行. 链接分类 编译时(compile time)链接:也称为传统静态链接.静态链接: 加载时(load time)链接:在程序被加载的时候动态链接共享库: 运行时(run time)链接:在程序运行时根据需要动态链接共享库. 目标文件 可重定位目标文件:可被链接生成可执行目标文件: 可执行目标文件:可被直接拷贝

mysql/mariadb主从复制架构配置及过程中出现的问题

两台CentOS7系虚拟主机:分别是:主服务器172.16.75.1,从服务器172.16.75.2使用的是mariadb-5.5.56,即centOS自带的软件版本为了使实验结果显示精准,此处关闭两台服务器的防火墙和SELinux:[[email protected] ~]# setenforce 0[[email protected] ~]# iptables -F 一.首先在主服务器172.16.75.1上配置:在/etc/my.cnf中配置如下:[mysqld]###定义二进制日志的存放

网页制作过程中div定位的三个问题

这几天要做单位的网站,对于做网站我也不怎么样,于是我便在网上参考了一个比较满意的网站,套一下来把这个工作结束了.在此期间遇到了三个关于div定位问题, 一般网站用div布局时都是从上到下分head .body. foot几部分 ,head .body和foot 再从上到下从左到右分几块,在这中间我遇到了一个问题,本来从上到下分了几块计划都是不用绝对定位的,可是在这个过程中我把网页的第一部分topup块position设置成了absolute,在紧邻着他的mainbanner块习惯性的也加上了po