背景说明
一个解决方案sln包含多个项目工程,每一个项目工程都会有一个vcxproj的工程文件,编译的时候,总是从项目文件所在的目录为当前目录,开始编译代码的。
文件引入规则
头文件的引入和lib文件的链接,都可以通过绝对路径和相对路径,这两种方式进行操作。如果是相对路径,肯定是从当前工程目录作为标准,然后采用.\这两种符号,进行相对路径的确定。
lib文件的链接方法有两种,一种是在源码文件开头中通过调用
#pragma comment关键字引入库文件,例如引入winsock2的库文件ws2_32.lib,写法如:#pragma comment(lib,"ws2_32.lib")
这种方法写的程序别人在使用你的代码的时候就不用再设置工程属性了
一种是在 项目属性 - 链接器 - 输入 - 附加依赖项 中加入: ws2_32.lib
代码文件布局
相对于将所有的代码放在一个目录,不如按照不同的模块将代码放在不同的文件夹中,例如asio 网络库,util 实用库,restful 接口
为了能够正确的引入不同文件夹下的头文件,在头文件包含目录的属性页中,添加.\,说明在当前路径下查找
输出路径设置
很多情况下,中间的输出文件和最终生成的文件会放在一起,不美观,因此可以修改常规中的输出目录
为..\..\outputs\
中间目录默认为vcxproj文件当前所在的目录
资料
VS中引入了大量的宏定义如$(Configuration) $(ProjectNamt),这些宏可以通过属性页,编辑宏,找到 具体的意思
错误解决
没有为此解决方案配置选中要生成的项目的解决方案:当出现这个提示说明当前的项目没有在管理配置中选中作为整个解决方案参与编译链接