图解Visual Studio2017编写C++静态库

本篇经验将和大家介绍如何利用Visual Studio2017编写C++静态库,希望对大家的工作和学习有所帮助!

操作方法

  • 01

    解决方案选win32 Console Application控制台,如下图所示:

  • 02

    类型选Static Library静态库,去掉Precompiled Header预编译头选项,如下图所示:

  • 03

    添加头文件和源文件,如下图所示:

  • 04

    源文件.cpp同理,之后应该是这个样子,如下图所示:

  • 05

    Solution Explorer->Properties属性页,如下图所示:

  • 06

    Output Direction输出目录,如下图所示:

  • 07

    然后就可以写代码了。 //    MathLib.h#pragma onceint add(int x, int y); //    MathLib.cpp#include "MathLib.h"int add(int x, int y) { return x + y; }

  • 08

    然后你需要一个Project来测试(回想开头说的,一个Solution可以有多个Project,它们都是执行单位(一会会再讲到怎么叫执行单位这是我自己造的概念)),在Solution Explorer里面为Solution加入新工程,如下图所示:

  • 09

    选控制台,把预编译头去掉和之前一样,现在我们得到了一个含有俩Projects的Solution了,如下图所示:

  • 10

    编写一段测试代码。 //    Test.cpp #include "stdafx.h" #include "..\MathLib\MathLib.h" #include <iostream> int main() { std::cout << add(1, 2) << std::endl; return 0; }

  • 11

    现在需要为Test添加MathLib的引用,这一步实际的作用是,在引导IDE用cl编译器命令行编译的时候,加入正确的链接选项(CSAPP有非常inspiring的讲解,源文件#include了头文件以后只是为链接器介绍了一堆未重定位的符号,它需要在库文件(静态库的话Linux是.a文件Windows是.lib)里找这些符号完成重定位),找到这些库很重要。在Solution Explorer里面Add Reference,如下图所示:

  • 12

    VS很贴心地把Solution里的Projects列进了备选项,选中即可,如下图所示:

  • 13

    此时Test的Reference里就有MathLib工程了。 下一步,为cl编译器添加include路径,也就是说,预编译期应该怎么找MathLib.h以完成符号的引入。在Test Properties属性页->C++->General->Additional Include Directaries附加包含路径,就是额外于标准库头文件目录的其他(自定义)头文件包含的目录,cl要去这些地方找MathLib.h。选择添加MyStaticLibrary\MathLib这个目录OK,如下图所示:

  • 14

    这个时候万事俱备,F5组建运行结果报了这么个错,如下图所示:

  • 15

    说.lib不是有效的win32应用不能运行。对呀我本来也没要运行它呀,可是VS怎么知道Solution里面这么多Projects应该运行哪一个?(想想之前的执行单元理解到是什么意思了吧,每个Project编译的结果都认为可执行)第一个添加的Project是MathLib所以VS默认去运行它的输出所以错了。想办法引导VS去运行Test的输出(Test.exe),Solution Explorer->MyStaticLibrary Properties属性页,如下图所示: 设单启动工程为Test,OK。

(0)

相关推荐

  • 如何使用visual studio2017编写c程序

    前段时间,为了自学Python.开发Python的IDE工具,发现visual studio是个不错的开发工具,安装了2017版.近日为了回答知道里面的网友问道的一个c语言编程的问题,就想着用visu ...

  • 如何使用visual studio2017编写C语言

    如何使用vs2017编写C语言? 操作方法 01 首先打开vs2017. 02 新建一个项目[文件]-[新建]-[项目] 03 选择[Visual C++]-[Win32项目]-名称自定-[确定] 0 ...

  • linux静态库和动态库的创建与使用

    静态库与动态库的创建与使用 1. 基本概念 静态库:链接时,库与编译生成的 .o 文件一起打包到可执行文件中。 linux / windows 下扩展名分别为:.a / .lib 动态库:链接时,不会 ...

  • visual studio2017各版本有什么区别 正式版各版本对比最全攻略

    Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代码管控工具. ...

  • android studio中怎么使用JNI之静态库?

    这里介绍过Android.mk如何使用静态库,这里介绍的是通过动态库调用静态库的使用方法 1.首先修改第一篇介绍的.c文件 1.首先修改.c文件 2.屏蔽或删除掉下面这句 3.修改android.mk ...

  • 怎么查询电脑中Microsoft Visual Studio2017的版本

    电脑版Microsoft Visual Studio2017软件被很多人使用,用来编辑音频等,有的用户在使用该软件时,想要知道Microsoft Visual Studio2017的版本,但是却不知道 ...

  • 如何在Xcode中创建C++静态库

    之前做端游,写了不少C++类,这些类都是跨平台的,为了方便在Xcode下开发,所以想整理成一个静态库,我是新学Xcode,所以将整个过程记录下来,以供同样有需要的朋友参考. 操作方法 01 运行Xco ...

  • 图解Visual Studio安装SVN插件

    本篇经验将和大家介绍Visual Studio安装SVN插件的步骤,希望对大家的工作和学习有所帮助! 操作方法 01 安装VisualSVN,按照软件提示一步步安装即可,安装VS完了之后在VS上可以看 ...

  • 图解Visual Studio查找与替换&代码美化快捷键

    本篇将和大家介绍Visual Studio查找与替换&代码美化快捷键,希望对大家的工作和学习有所帮助! 代码美化 01 格式化代码片段 Ctrl + E, Ctrl + F 02 格式化整个文 ...