[VS2017使用] 创建静态库[TZZ]
1、启动Visual Studio 2017软件,在弹出的“Visual Studio 2017主窗口”中,点击菜单栏上的“文件->新捋杏野卫建->项目”(或使用快捷键Ctrl + Shift + N)创建一个新的开发项目;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/e996472ae3efe07875058f02b96c576698cf6588.jpg)
2、在弹出的“新建项目窗口”中,选择左侧列表中的“Windows桌面”,然后在中间的列釉涑杵抑表中选择“静态库”。接着,根据需要设置项目名称和存储位置以及解决菱诎逭幂方案的名称(这里为了演示全部采用默认名称,项目中一定要取自己认为有意义的名字)。设置完成之后,点击“确定按钮”确定项目创建;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/988e1c532f6323858902b225cce833e038725d88.jpg)
3、静态库项目创建后,可以在VS2017解决方案管理器列表中见到它为我们生成的静态库模板文件。可惜,这只是一个空的静态库,里面没有定义任何被第3方程序使用的代码;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/38332303bbea3e86417c31f75cd4483105eb5588.jpg)
4、右键单击StaticLib1项目列表下的“头文件目录”,在弹出菜单中选择“添加 > 新建项”打开”添加新项窗口”;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/05aae8a75f0f822b0dda4c86c018512c8df14d88.jpg)
5、在弹出的“添加新项窗口”中,选择列表中的“头文件(.h)”,然后在下方将头文件的名称修改为“foo.h”(foo这个名字通常出现在各种示例中,表示一个文件或函数)。修改完毕后,点击“确定按钮”确认添加新的头文件;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/d9e638334884cde3c918065af07f860e7d754288.jpg)
6、继续右键单击StaticLib1项目列表中的“源文件目录“,在弹出菜单中选择”添加 > 新建项“,打开”添加新项窗口“;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/ef4c24ceaad7726b81d63553bf0f64781523b988.jpg)
7、在添加新项窗口中,选择列表中的“C++文件(.cpp)”,然后修改新源文件的名称为“foo.cpp”(这里也可以命名为foo.c创建一个C语言源文件)并点击“添加按钮”确定添加新的源文件;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/1562a0b9763e21c22ee2b164e6e89a618725b188.jpg)
8、在VS2017工作区中打开“foo.h”文件,然后在该文件中声明一个printHello()函数(该头文件可以被第3方引用,用于声明所有静态库中定义的函数);
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/b1454a1bd10ff226adae61ba9c99e92abbb8a488.jpg)
9、在工作区中打开“foo.cpp”文件,然后添加printHello()函数的定义以及需要包含的头文件(千万别忘了包含stdafx.h);
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/6bbfdd14f1c595eeebf5e79327530688902c9a88.jpg)
10、点击VS2017菜单栏中的“生成 > 生成解决方案”(或者使用快捷键F7)。一切正常时,可以在输出窗口中见到编译成功的打印信息;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/01bd69f7980e5f20f5450f6fbd20b93acc898e88.jpg)
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/8974c38a59de4507493568c45e413a8ca7088588.jpg)
11、由于砾班柩盖静态库无法独立运行,因此还需要新建一个控制台应用程序(或其他可执行程序,但是控制台是最简单的),用于测试静态库中的代码是否正确。向解决方案StaticLib1中添加一个控制台应用程序,可以通过右键单击“解决方案”,在弹出菜单中选择“添加 > 新建项目”;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/95bd4e8c9bcec7f841430d69034ce54a2e27fb88.jpg)
12、在弹出的“添加新项目窗口”中,选择左侧列表中的“Windows桌面”,然后选择右侧列表中的“Windows控制台应用程序”,也可以根据需要修改控制台应用程序的名称和存储位置。这里采用默认,直接点“确定按钮”确定创建新项目;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/2e66f9ef28066b0141e963f43df39187021cf388.jpg)
13、右键单击新创建的“ConsoleApplication1项目”,在弹出菜单中选择“生成依赖项 > 项目依赖项”;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/9881b1fce186242f7446c4ab35e434daf15ee888.jpg)
14、在弹出的“项目依赖项窗口”中,勾选“StaticLib1”,然后点击“确定按钮”完成项目生成依赖配置(每次编译ConsoleApplication1时总会先编译StaticLib1项目);
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/f11f54237971fe1d72ec48adea20a7cd0d6ee088.jpg)
15、右键单击“ConsoleApplication1”,在弹出菜单中选择“属性”,打开项目属性页;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/a68c126efbf202b39ee3c9cf30f4da5873dadb88.jpg)
16、在弹出的“ConsoleApplication1属性页窗口”中,将配置设置为“所有洧粽袄淖配置”。然后,在左侧配置属性列表中选择“链接器 > 常规”。在右侧出现的属性集列表中,选中“附加库目玲膛宀耱录”,然后在右侧输入“$(OutDir)”(默认情况下,同一个解决方案下的所有项目的生成文件都会被放到$(OutDir)中)。设置完毕后,点击“应用按钮”应用设置;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/bab5c45872dade49903bdbe226042e6816e9d588.jpg)
17、继续点击“ConsoleApplication1属性页窗口”左侧列表中“链接器“输入”,在右侧显示的属性集列表中,选择“附加依赖项”,然后在属性值编辑框中增加“Stat足毂忍珩ic1.lib;”,告诉编译器生成时还需要链接Static1.lib文件。设置完毕后,点击“确定按钮”关闭属性页窗口;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/2f2909e951e10ef8a06285892324d8e9cdd2cc88.jpg)
18、在VS2017工作区中,打开“ConsoleApplication1.cpp”文件,输入调用静态库中printHello()函数的代码;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/d47cb624d8e9ccd2465201ed0e40102a05e2c988.jpg)
19、右键单击“ConsoleApplication1项目”,在弹出菜单中选择“设为启动项目”,将ConsoleApplicat足毂忍珩ion1项目设置为启动项目,这样通过VS2017启动开发项目时,启动的就是ConsoleApplication1项目生成的可执行程序;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/50189b40102a04e23c976af62b7aa010bd33c288.jpg)
20、点击VS2017主界面中的“本地Windows调试器”按钮,编译运行启动项目“ConsoleApplication1”;
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/3b03be7aa010bc33eb0d640f92efa25f0d143f89.jpg)
21、项目编译启动之后,可以在控制台中见到输出的“Hello”字符串,表示静态库一切正常。Enjoy!
![[VS2017使用] 创建静态库[TZZ]](https://exp-picture.cdn.bcebos.com/a31e1214c27bd28288bcf1f23cb1eef97ebd3689.jpg)