VS属性配置和auto-linking

来源:互联网 发布:java源码中的设计模式 编辑:程序博客网 时间:2024/06/03 21:59

VS属性配置和auto-linking

Abstract

在windows的c/c++开发世界里,vs作为微软系的IDE有着很重要的影响力和友好性(开发、调试等等),当然爱好命令行的酷炫狂拽的geek程序员和大牛们可能不在此列。作为一款IDE中的利器,vs将代码工程的配置,集成到可视化的工程属性对话框中。能够有效的配置工程属性,能够在让我们在开发中免于重复操作和被各种链接、运行错误影响的麻烦。

同时笔者在使用opencv和boost库是,发现了auto-linking的存在,由此也让我意识到自己所知甚少。

下文主要介绍一种更加有效的lib/dll的配置方法,以利于程序转移时不用因为使用绝对路径而烦恼;同时介绍一下auto-linking的一些简单情况。

lib库的配置

  • 合理的工程组织
    这里写图片描述
    将lib或者dll文件放置在工程根目录($(SolutionDir)下lib目录,头文件放置在include目录下,当然具体的路径和和目录名称可自己调整,当然我觉得放置在工程的根目录下,有利于管理和配置的便利。

  • 以前常使用的方法,经常被我配置成绝对路径
    参考Visual Studio下C++第三方库的配置方法总结,这里面详细介绍了配置的过程,图文并茂,很好操作。
    总结一下就是,将头文件、库文件的目录添加进去,同将依赖库的名称填入配置属性》连接器》输入》附加依赖库中,但是并不太提倡将dll目录添加入环境变量的做法。
    这个配置做法好虽然好,但是有这样的问题,首先配置相对路径的话,有点麻烦;其次,点点点。

  • 更加清晰的配置,还是上图吧
    这里写图片描述

    这里写图片描述

总结一下,第一,在配置属性》c/c++》常规》附加包含目录 中,将(SolutionDir)include(SolutionDir)lib目录引入,以为SolutionDir宏值是带目录的反斜线的;当然还有第三,仍然是要像配置属性》连接器》输入》附加依赖库中添加需要的库的名字。sigh!

利用VS内置的宏,还可以做很多事情;有一些还需要继续了解,尤其是关于路径的问题。

dll如何处理

这里写图片描述

auto-linking

  • 问题
    在配置opencv和boost库的时候发现了存在这个问题,但是不幸的是opencv并不支持auto-linking,也即是需要在附加依赖库里填写一大堆的库文件名,而boost不用
  • 原因解释
    可以参考<库目录>和<附加依赖项>的区别?的回答,之处了opencv和boost的差异,是我获得了这个问题存在的来源
    How boost auto-linking makes choice?

感受

  • 程序的世界里,我实在是知之甚少。
  • 写代码,有一种畏惧感。
  • 我应该怎么从现状中摆脱??

感谢

  • Visual Studio下C++第三方库的配置方法总结
  • <库目录>和<附加依赖项>的区别?
  • How boost auto-linking makes choice?
0 0
原创粉丝点击