关于VS2010工程各种路径注意事项汇总


声明:引用请注明出处http://blog.csdn.net/lg1259156776/


说明:前段时间调试,利用cmake生成的vs2010工程文件,虽然该工程调试好了,但是对于为了修改相关接口函数,然后重新复制工程文件到新的目录下进行调试,总是出现各种各样的错误,最后发现问题出在了VS2010工程中各种包含路径的错误,是相对路径与绝对路径的问题,导致生成的库文件和修改后包含的头文件并不是在我拷贝后的那个工程路径下,而是在父工程目录下,浪费了不少时间,下面对VS工程中一般需要设置的路径进行说明。


首先最基本的路径当然是在VC++目录里面的两个:include目录和lib目录,指的是查找头文件所需要寻找的路径,输入lib文件所用寻找的路径,一般地,以opencv的目录为例,在使用时通常需要在include目录下输入opencv中的头文件的绝对路径(通常是include文件夹,然后再源文件中可以直接opencv2/xxx.h等形式),因为opencv整个头文件和库文件都是不会再修改的,同时直接放到D盘,不在改变即可。而对应的lib文件的包含目录要根据平台是x86还是x64,VS2010还是VS2012等,也是绝对路径。注意:debug和release版本的库形式上的区别是debug带一个d,而release不带,然后根据debug还是release版本,在链接器->输入->附加依赖项栏目输入对应的库文件,或者使用#pragma comment(lib,”xxx.lib”)在源文件中进行输入。而对应的dll文件,通常直接放入Path系统环境变量中,因为它是在程序执行的时候动态的包含的,所以Path路径是可执行程序搜索动态链接库的目录之一。而一般自己生成的动态链接库,自己维护的话,最好还是放到可执行文件的目录下,因为执行的时候会在该目录下搜索。

另外一个不常注意的是在C/C++->常规的栏目页,有一个附加包含目录,也是include文件的输入路径之一;如果程序中定义了预处理器类似如下:

#ifdef _WIN32
#include <windows.h>
#define strcasecmp _stricmp
#define strncasecmp _strnicmp
#else

而这些个定义_WIN32等,可以在C/C++->常规的栏目页的预处理器定义项中输入对应的名字即可;

另外,还要注意好输出目录,目标文件的扩展名,以及目标文件名等。正如上一篇博文中所说的,在配置属性->调试栏目页,有设置工作目录,命令行参数的项目,进行编辑即可实现调试的输入参数。

对于经常拷贝的工程,其中的目录除了上面讲到的类似opencv这些基本上不变得SDK,可以输入绝对路径,而自己维护的头文件和库文件等最好还是放入对应的工程下,选择使用相对路径为妙。正如前面所讲的,这个问题狠狠的搞了我一下!

大致先总结这么多,其他的陆续发现,陆续补充。


2015-10-19 调试记录 张朋艺

关于VS2010工程各种路径注意事项汇总的更多相关文章

  1. CMake生成VS2010工程相对路径和绝对路径问题说明

    CMake生成VS2010工程相对路径和绝对路径问题说明 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 主要是使用CMake生成的VS2010的工程,最好不 ...

  2. web工程常用路径的获取方法

    此文章是基于 搭建SpringMVC+Spring+Hibernate平台 一. 利用 Spring 取得web工程根路径 1. web.xml 中添加如下: <context-param> ...

  3. ARCGIS 10.1 发布服务问题以及注意事项汇总

    本文会逐渐丰富,并在遇到问题后进行整理进来. 一.了解ArcGIS Server以及如何利用ArcServer发布服务 官方中文帮助文档:http://resources.arcgis.com/zh- ...

  4. Eclipse的Java工作集和多工程构建路径

    一.Java工作集: Eclipse有一个小功能,就是创建Java Working Set.它的作用是解决Package Explorer窗格中创建很多工程时出现拥挤的麻烦. 在创建(New对话框)时 ...

  5. JSP、Java和Servlet获取当前工程的路径

    JSP.Java和Servlet获取当前工程的路径: 1.JSP中取得路径: 以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI()结果:/TE ...

  6. VS2010 工程设置

       本篇文章的主要内容转载自 http://blog.csdn.net/waitforfree/article/details/8622059 ,感谢博主的辛苦劳动.此处,对比较重要的部分,进行进一 ...

  7. VS2010添加默认路径,库以及Lib

    下面以OpenCV为例,不需要每次打开VS2010都手动添加OpenCV的库和lib,具体方法如下: VC++目录 步骤一:用任意文本编辑器打开:  VS安装目录中的\VC\VCWizards\def ...

  8. VS2010工程文件减肥

    由于VS2010中新增加了sdf和ipch文件等浏览数据库来支持智能浏览感知编辑.显示类视图等,使得随便一个小工程就上百兆,很占用空间也不方便工程项目的打包备份.为了不使用数据库以减小VS2010中的 ...

  9. vs2010工程迁移问题,x64到Win32

    ALL_BUILD:vcxproj:找不到项目文件“ALL_BUILD”中引用的平台“x64”.请确保已将该平台安装在“%VCTargetsPath%\Platforms\x64”下.无法加载项目. ...

随机推荐

  1. HTML 003 元素

    HTML 元素 HTML 文档由 HTML 元素定义. HTML 元素 开始标签 * 元素内容 结束标签 * <p> 这是一个段落 </p> <a href=" ...

  2. MongoDB 副本集主从切换方法

    一.方法一rs.setpDown() 将Primary节点降级为Secondary节点 myapp:PRIMARY> rs.stepDown() 这个命令会让primary降级为Secondar ...

  3. 后台(一)vue+element-ui(全局配置)

    vue init webpack    项目名称 npm install axios                    //先安装! npm install --save axios vue-ax ...

  4. Bzoj 2820: YY的GCD(莫比乌斯反演+除法分块)

    2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x& ...

  5. 在其他博客里看到的比较好的map用法,进行储存啦啦~ x

    1.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响.对于迭代器来说,可以修改实值,而不能修改key. 2.map的功能 自 ...

  6. LOJ2541. 「PKUWC2018」猎人杀 [概率,分治NTT]

    传送门 思路 好一个神仙题qwq 首先,发现由于一个人死之后分母会变,非常麻烦,考虑用某种方法定住分母. 我们稍微改一改游戏规则:一个人被打死时只打个标记,并不移走,也就是说可以被打多次但只算一次.容 ...

  7. <frame>、<iframe>、<embed>、<object> 和 <applet>

    frame frame 必须在 frameset 里,而 frameset 又不能和 body 共存(就是一旦存在 frame,就不能存在 body 了,因此这个基本每人使用) 推荐阅读:https: ...

  8. 浅谈Min_25筛(一看就懂的那种)

    作用 前提:一个积性函数\(F(i)\),要求\(F(P^k),P\in prime\)可以快速计算 实现\(O(\frac{n^{\frac{3}{4}}}{logn})\):\(\sum\limi ...

  9. Metaspace 之二--PermGen vs. Metaspace 运行时比较

    PermGen vs. Metaspace 运行时比较 为了更好地理解Metaspace内存空间的运行时行为, 将进行以下几种场景的测试: 使用JDK1.7运行Java程序,监控并耗尽默认设定的85M ...

  10. 问题分析——Maven打包后发版,静态资源找不到

    一.背景 Xxl-Job-Admin(开源分布式调度中心)项目在本地运行正常,Jenkins发版到测试环境,发版成功后,打开管理页面,页面css.js找不到. 怀疑是Maven没有把静态资源打包进去导 ...