VS项目工程环境相关问题

         1.代码生成的相关问题

       每当调用第三方库生成DLL动态库时,总是需要将代码生成的模式调成一致,那么在这里代码调试的模式分别代表什么呢?在VS项目工程中一共有三种模式四种模式可选,分别是多线程(/MT)、多线程调试(\MTd)、多线程(\MD)、多线程调试(\MDd)四个选项,现在已经不提供单线程版本的代码生成选项了。

        在我们写程序的时候,比如打开文件,这时候就需要系统底层库的支持,windows下C底层库为多线程静态Release版本 LIBCMT,多线程静态Debug版本 LIBCMTD,多线程动态Release版本 MSVCRT,多线程动态Debug版本 MSVCRTD,这样就对应上面说的VS中代码调试的四个版本,

        多线程(/MT)其实就是引用底层库是静态版本 LIBCMT;

        多线程调试(\MTd)是引用静态调试版本LIBCMTD;

        多线程(\MD)引用底层库动态版本MSVCRT;

        多线程(\MDd)是引用动态调试版本MSVCRTD。

       如果我们的程序使用了不同代码生成的的DLL动态库时会报库冲突等等错误,如果我们的程序我们的程序使用了高版本VS编译的第三方库会报找不到相应的C底层库,找不到MSVCRT140等等错误,在vs项目工程中有时还会遇到一些msvcr msvcp等不同的库,这些都是不同的编译器(VC、vc++)对运行时库(CRT库,像MSVCRT)进行的封装,msvcr是C库,msvcrp是C++库。


       2.附加包含目录和附加库目录

       使用相对路径是两个点表示上层,一个点表示当前目录,相对的是项目文件所在的目录即vcproj文件所在的目录 。    


      3.log4cpp的使用问题

      在使用log4cpp时发现两个问题,

      首先,头文件包含中要多一层目录,因为在源码中引用头文件时是/log4cpp/..这种形式的,其次log4cpp不允许多次初始化。  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值