场景说明
项目中集成多个工程,编译需要设置头文件,链接需要指定lib,运行依赖dll。不管是dll还是lib,还是exe都必须指定输出的目录,进行调试配置
应用说明
项目不允许使用绝对路径进行各种目录输出的设置,否则,下载源码的时候,都必须重新设置输出路径,所以一律采用相对路径。但是怎么知道工程当前的路径?还有创建工程的时候,填写工程名称的右下角会有一个勾选框:创建解决方案的目录,应该如何选择?
项目的编译时期的当前目录,就在源码所在的位置,创建解决方案的目录只是为了将解决方案.sln文件与源码文件隔离开来,创建多一个目录保存工程源码。所以在设置输出目录的相对路径的时候,可以采用..\..\..\test.lib等相对路径,
输出test.lib文件。
作为工程的主入口exe输出文件,只需要在工程的链接器,常规中指定输出的相对路径,以及exe的名称即可,执行调试
的时候,会到输出目录找到程序进行加载运行。
例外的情况:如果是手动拷贝exe输出文件,如果需要调试的时候,需要进行如下的设置:
VS中有:项目-》属性-》调试-》工作目录
其中的工作目录,指的是在vs中,F5/CTRL+f5执行的EXE文件的目录
一般情况下我们F5调试启动的是生成的DEBUG目录下的$(targetFileName) EXE文件,如果
生成的exe没有放在debug下, 而是拷贝到了../bin目录下, 那么想在编译器里面调试这个程序怎么办呢?
进行如下设置:
把exe运行是所要的资源等copy到 ../bin目录下
项目配置属性=>调试=>工作目录: ../bin
目配置属性=>调试=>命令:..\bin\$(TargetFileName)
如果有命令参数的话带上参数,设置命令参数
注意:VS2010设置调试的目录跟VS2005有区别
如何包含头文件,指定依赖库目录,指定LIB文件:
VC6:
工程、设置、C/C++、分类:Preprocessor、附加包含路径:填写附加头文件所在目录 逗号间隔多项
工程、设置、Link、分类:Input、附加库路径:填写附加依赖库所在目录 分号间隔多项
工程、设置、Link、分类:Input、对象/库模块:填写附加依赖库的名字.lib 空格间隔多项
VS20xx:
项目、属性、C/C++、附加包含目录:填写附加头文件所在目录 分号间隔多项
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
如何输出头文件,LIB文件,DLL文件
无论静态库还是动态库,在生成事件|生成事件后,通过copy ..\test.h ..\..\include拷贝头文件到入口函数需要的目录中(注意斜杠的方向)
链接器|高级|导入库中指定LIB文件输出路径以及文件名称
链接器|常规|输出文件中指定DLL文件输出路径以及文件名称