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