windows下设置由多个项目组成的解决方法的编译环境

来源:互联网 发布:生鲜网络销售平台 编辑:程序博客网 时间:2024/05/17 22:53

新到一家公司,接触到的这个项目提供了vs编译环境,但由于主要在linux下编译运行,vs的编译设置很久不维护了,有问题不能编译。因为觉得在windows下用vs看代码比较方便,打算改一下。

原工程是用vs2010编写的,首先下载vs2010,打开工程后,解决方案下有很多项目,这些项目需要有共同的include目录、dll的lib目录 和dll目录,可能之前改了路径名,现在设置得都有问题,但没找到如何在解决方案下设置总的路径的方法,只得在每个工程下都要设置这些路径。开始觉得设置../../比较麻烦,看到宏下面有很多$(OutDir)这样的名字,于是想到能不能也设置一个名字为工程根目录,然后在这个目录的基础上设置路径。之后想到可以设置环境变量,设置后就可以在vs中用同样的方法引用这个路径值了。步骤如下:

(1) 设置环境变量 :项目名project = 工程根目录

(2)设置某个项目的c++ include 目录,右键项目名/属性/配置属性/c++/常规的”附加包含目录“添加include路径:$(project)\xxx\include;

(3)设置某个项目 lib目录:右键项目名/属性/配置属性/链接器/常规的“附加库目录“中添加lib目录路径:$(project)\xxx\lib;

(4)设置某个项目以来的lib文件名字:右键项目名/属性/配置属性/链接器/输入的"附加依赖项"中添加lib名字:比如ACEd.lib

(5)假如所有dll都放到了一个共同的目录,并不在exe的当前目录下,在调试状态下,为了让vs找到dll的路径,可以在右键项目名/属性/配置属性/调试的"工作目录“中设置dll存放的目录:$(project)\xxx\dll\debug

(6)如果编译好后直接运行该exe,则需要让windows知道dll存放的目录,这可以在环境变量的path中指定,比如在path中添加$(project)\xxx\dll\debug,注意多个目录之间要加引号;


其他的项目设置方法一样,都需要用到$(project)


这个项目用vs编译总是提示LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏,网上找到答案,在右键项目名/属性/配置属性/清单工具/输入和输出的  嵌入清单 选择否即可。

启动项设置:该项目有一个exe和n个dll组成,为了启动总是启动那个exe对应的项目,右键解决方案名/属性/通过属性/启动项目中设置exe对应的那个项目即可。




0 0